Part Number Hot Search : 
MT630 K12A25N MAX1686 IN74AC 001GP7 BSERIES LA4597 36K20R5
Product Description
Full Text Search
 

To Download 2000949 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
 S/UNI-ATLAS (PM7324) Driver Manual
PM7324
S/UNI-ATLAS
DRIVER MANUAL
DOCUMENT ISSUE 3
ISSUED: JANUARY, 2002
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS (PM7324) Driver Manual
ABOUT THIS MANUAL AND S/UNI-ATLAS PM7324 (ATLAS)
This manual describes the S/UNI-ATLAS PM7324 (ATLAS) device driver. It describes the driver's functions, data structures, and architecture. This manual focuses on the driver's interfaces to your application, real-time operating system, and to the device. It also describes in general terms how to modify and port the driver to your software and hardware platform.
Audience
This manual was written for people who need to: * * * Evaluate and test the ATLAS devices Modify and add to the ATLAS driver's functions Port the ATLAS driver to a particular platform.
References
For more information about the ATLAS driver, see the driver's release Notes. For more information about the ATLAS device, see the documents listed in Table 1 and any related errata documents. Table 1: Related Documents Document Name S/UNI- ATLAS Long Form Data Sheet. S/UNI-ATLAS Long Form Data Sheet Errata. Document Number PMC-1971154 PMC-1981505
Note: Ensure that you use the document that PMC-Sierra issued for your version of the device and driver.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
2
S/UNI-ATLAS (PM7324) Driver Manual
Revision History
Issue No. Issue 1 Issue 2 Issue Date June 2000 August 2000 Details of Change Document created Valid states in atlasReadReg and atlasWriteReg have been changed from All states to ATLS_PRESENT Added atlasAddEgressDummyConnection API.
Issue 3
January 2002
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
3
S/UNI-ATLAS (PM7324) Driver Manual
LEGAL INFORMATION
Copyright
(c) 2002 PMC-Sierra, Inc. The information is proprietary and confidential to PMC-Sierra, Inc., and for its customers' internal use. In any event, you cannot reproduce any part of this document, in any form, without the express written consent of PMC-Sierra, Inc. PMC-2000949 (R3)
Disclaimer
None of the information contained in this document constitutes an express or implied warranty by PMC-Sierra, Inc. as to the sufficiency, fitness or suitability for a particular purpose of any such information or the fitness, or suitability for a particular purpose, merchantability, performance, compatibility with other parts or systems, of any of the products of PMC-Sierra, Inc., or any portion thereof, referred to in this document. PMC-Sierra, Inc. expressly disclaims all representations and warranties of any kind regarding the contents or use of the information, including, but not limited to, express and implied warranties of accuracy, completeness, merchantability, fitness for a particular use, or non-infringement. In no event will PMC-Sierra, Inc. be liable for any direct, indirect, special, incidental or consequential damages, including, but not limited to, lost profits, lost business or lost data resulting from any use of or reliance upon the information, whether or not PMC-Sierra, Inc. has been advised of the possibility of such damage.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
4
S/UNI-ATLAS (PM7324) Driver Manual
Patents
The technology discussed is protected by one or more of the following Patents: Canadian Patent No. 2,209,887, Canadian Patent No. 2,164,546, Canadian Patent No. 2,167,757, US Patent No. 5,668,797, US Patent No. 5,815,737, US Patent No. 6,108,303, US Patent No. 6,128,766, UK Patent No. 2,301,913 Relevant patent applications and other patents may also exist.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
5
S/UNI-ATLAS (PM7324) Driver Manual
CONTACTING PMC-SIERRA
PMC-Sierra 8555 Baxter Place Burnaby, BC Canada V5A 4V7 Tel: (604) 415-6000 Fax: (604) 415-6200 Document Information: document@pmc-sierra.com Corporate Information: info@pmc-sierra.com Technical Support: apps@pmc-sierra.com Web Site: http://www.pmc-sierra.com
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
6
S/UNI-ATLAS (PM7324) Driver Manual
TABLE OF CONTENTS
Revision History .................................................................................................................. 2 About this Manual and S/UNI-ATLAS PM7324 (ATLAS) .................................................... 2 Legal Information ................................................................................................................ 4 Contacting PMC-Sierra ....................................................................................................... 6 Table of Contents ................................................................................................................ 7 List of Figures.................................................................................................................... 13 List of Tables ..................................................................................................................... 14 1 2 3 Introduction ................................................................................................................. 16 Driver Functions and Features ................................................................................... 17 Software Architecture ................................................................................................. 18 3.1 3.2 3.3 3.4 3.5 Driver Interfaces......................................................................................... 18 Application Programming Interface............................................................ 18 Driver Hardware Interface .......................................................................... 19 RTOS Interface .......................................................................................... 19 Main Components ...................................................................................... 19 Driver Library Module ................................................................................. 20 Global Driver Database and Device Data-Blocks ...................................... 21 Interrupt-Service Routine Module .............................................................. 21 Deferred-Processing Routine Module ........................................................ 21 Software State Description......................................................................... 22 Module States ............................................................................................ 23 Start ............................................................................................................ 23 Ready ......................................................................................................... 23 Device States ............................................................................................. 23 Start ............................................................................................................ 23 Present ....................................................................................................... 23 Active.......................................................................................................... 23 Inactive ....................................................................................................... 23 Processing Flows ....................................................................................... 24 Module Management ................................................................................. 24 Device Initialization, Re-initialization, and Shutdown................................. 24 Cell Extraction ............................................................................................ 25
3.6 3.7
3.8
3.9
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
7
S/UNI-ATLAS (PM7324) Driver Manual
3.10 Interrupt Servicing ...................................................................................... 26 Calling atlasISR.......................................................................................... 27 Calling atlasDPR ........................................................................................ 28 Polling Servicing......................................................................................... 28 4 Data Structures ........................................................................................................... 30 4.1 Global Driver Database.............................................................................. 30 Interrupt Service routine manager.............................................................. 30 Device Data Block ...................................................................................... 30 Initialization Vector ..................................................................................... 33 Interrupt Enable Registers ......................................................................... 33 Ingress Registers ....................................................................................... 34 Egress Registers ........................................................................................ 36 Performance Monitoring Configuration ...................................................... 38 Microprocessor Cell Interface Configuration.............................................. 39 Interrupt Status information ........................................................................ 39 Ingress Record Type .................................................................................. 40 Ingress OAM Defect Record ...................................................................... 43 Ingress Configuration Record .................................................................... 43 Ingress OAM Configuration Record ........................................................... 43 Ingress Policing Record ............................................................................. 44 Ingress Counts Record............................................................................... 44 Ingress PM Record..................................................................................... 45 Ingress Translation Record ........................................................................ 45 Ingress Key Record.................................................................................... 46 Egress Record Type................................................................................... 46 Egress OAM Defect Record....................................................................... 48 Egress Configuration Record ..................................................................... 48 Egress OAM Configuration Record............................................................ 48 Egress Counts Record ............................................................................... 49 Egress PM Record ..................................................................................... 49 Egress Key Record .................................................................................... 49 Performance Monitoring ............................................................................. 50 Microprocessor Cell Interface .................................................................... 52 Per-PHY Policing........................................................................................ 52 Statistics Information .................................................................................. 53 Driver Ingress VC Table Data Structures ................................................... 55 User Context .............................................................................................. 56
5
Application Programming Interface ............................................................................ 57 5.1 5.2 Function Calls ............................................................................................ 57 Driver Initialization and Shutdown.............................................................. 57 Initializing Device Drivers: atlasModuleInit................................................. 57 Shutting Down Drivers: atlasModuleShutdown.......................................... 57 Hardware Access ....................................................................................... 58 Reading Registers: atlasReadReg............................................................. 58 Writing Registers: atlasWriteReg ............................................................... 58 Device addition and deletion...................................................................... 59 Locating Devices and Allocating Memory: atlasAdd .................................. 59
5.3
5.4
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
8
S/UNI-ATLAS (PM7324) Driver Manual
Removing Devices: atlasDelete ................................................................. 60 5.5 Device Initialization and Reset................................................................... 60 Initializing Devices Based on Initialization Vectors: atlasInit ...................... 60 Resetting Devices: atlasReset ................................................................... 61 Device Activation and Deactivation............................................................ 61 Activating Devices: atlasActivate ............................................................... 61 De-activating Devices: atlasDeactivate...................................................... 62 Device Diagnostics..................................................................................... 63 Verifying the Access of Microprocessors: atlasTest ................................... 63 Connection Management ........................................................................... 63 Adding Ingress Connections: atlasAddIngressConnection........................ 63 Deleting Ingress Connections: atlasDeleteIngressConnection.................. 64 Adding Egress Connections: atlasAddEgressConnection ......................... 65 Adding Egress Connections: atlasAddEgressDummyConnection............. 66 Deleting Egress Connections: atlasDeleteEgressConnection ................... 66 Getting Ingress VC Status: atlasGetIngressVcStatus ................................ 67 Getting Ingress VC Counters: atlasGetIngressVcCounts .......................... 68 Getting Ingress VC Counters: atlasReadIngressCounts............................ 69 Enabling Ingress VC : atlasEnableIngressVC............................................ 69 Disabling Ingress VC : atlasDisableIngressVC .......................................... 70 Getting Full Ingress VC Records: atlasGetIngressVc ................................ 70 Getting Egress VC Status: atlasGetEgressVcStatus ................................. 71 Getting Ingress VC Counters: atlasGetEgressVcCounts........................... 72 Getting Egress VC Counters: atlasReadEgressCounts............................. 72 Enabling Egress VC : atlasEnableEgressVC............................................. 73 Disabling Egress VC : atlasDisableEgressVC ........................................... 73 Getting Full Egress VC Records: atlasGetEgressVc ................................. 74 Getting Ingress VC Key: atlasReadIngressKey ......................................... 75 Modifying Ingress VC Key: atlasWriteIngressKey...................................... 75 Getting Ingress VC Configuration: atlasReadIngressConfig...................... 76 Modifying Ingress VC configuration: atlasWriteIngressConfig ................... 77 Modifying Connection Configurations: atlasModifyIngressVcConfiguration77 Getting Ingress VC Policing Configuration: atlasReadIngressPolicing...... 78 Modifying Ingress VC Policing Configuration: atlasWriteIngressPolicing .. 79 Modifying Policing Parameters: atlasModifyIngressVcPolicing ................. 79 Getting Ingress VC Translation Configuration: atlasReadIngressTranslation80 Modifying Ingress VC Translation Configuration: atlasWriteIngressTranslation ............................................................... 81 Modifying Translation Parameters: atlasModifyIngressVcTranslation ....... 81 Modifying Configurations, Policings, and Translations: atlasModifyIngressVcConfiguration ..................................................... 82 Getting Ingress VC OAM Configuration: atlasReadIngressOAMConfig .... 83 Modifying Ingress VC OAM Configuration: atlasWriteIngressOAMConfig. 83 Modifying Ingress VC VPC Pointer: atlasWriteIngressVpcPointer ............ 84 Activating/Deactivating Ingress VC CC support: atlasWriteIngressCCActivation ............................................................ 85 Activating/Deactivating Ingress VC AIS support: atlasWriteIngressAISActivation............................................................ 86 Activating/Deactivating Ingress VC RDI support: atlasWriteIngressRDIActivation ........................................................... 87
5.6
5.7 5.8
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
9
S/UNI-ATLAS (PM7324) Driver Manual
Modifying Existing Connections: atlasModifyEgressVc ............................. 87 Modifying PHY Id Fields: atlasModifyEgressVcPhyId................................ 88 Modifying VP/VCI Fields: atlasModifyEgressVcVpiVci .............................. 88 Getting Egress VC Configuration: atlasReadEgressConfig....................... 89 Modifying Egress VC Configuration: atlasWriteEgressConfig ................... 90 Getting Egress VC OAM Configuration: atlasReadEgressOAMConfig ..... 90 Modifying Egress VC OAM Configuration: atlasWriteEgressOAMConfig.. 91 Getting Egress VC OAM Defect: atlasReadEgressOAMDefect ................ 92 Modifying Egress VC OAM Defect: atlasWriteEgressOAMDefect ............. 92 Modifying Egress VC VPC Pointer: atlasWriteEgressVpcPointer.............. 93 Activating/Deactivating Egress VC CC support: atlasWriteEgressCCActivation............................................................. 94 Activating/Deactivating Egress VC AIS support: atlasWriteEgressAISActivation ............................................................ 94 Activating/Deactivating Egress VC RDI support: atlasWriteEgressRDIActivation............................................................ 95 5.9 Performance monitoring sessions.............................................................. 96 PM Session Allocation................................................................................ 96 Allocating Free PM Record Ids: atlasGetIngressBank1PMId .................... 96 Allocating Free PM Record Ids: atlasGetIngressBank2PMId .................... 97 Allocating Free PM Record Ids: atlasGetEgressBank1PMId ..................... 97 Allocating Free PM Record Ids: atlasGetEgressBank2PMId ..................... 98 Freeing PM Record Ids: atlasFreeIngressBank1PMId............................... 98 Freeing PM Record Ids: atlasFreeIngressBank2PMId............................... 99 Freeing PM Record Ids: atlasFreeEgressBank1PMId ............................... 99 Freeing PM Record Ids: atlasFreeEgressBank2PMId ............................. 100 Writing PM Records: atlasWriteIngressBank1PMConfig ......................... 100 Writing PM Records: atlasWriteIngressBank2PMConfig ......................... 101 Writing PM Records: atlasWriteEgressBank1PMConfig.......................... 101 Writing PM Records: atlasWriteEgressBank2PMConfig.......................... 102 Reading PM Records: atlasReadIngressBank1PMRecord...................... 102 Reading PM Records: atlasReadIngressBank2PMRecord...................... 103 Reading PM Records: atlasReadEgressBank2PMRecord ...................... 104 Getting Ingress VC PM parameters: atlasReadIngressPM...................... 105 Modifying Ingress VC PM parameters: atlasWriteIngressPM .................. 105 Activating/Deactivating Ingress VC PM sessions: atlasWriteIngressPMActivation .......................................................... 106 Modifiying Ingress PM Parameters: atlasModifyIngressVcPM ................ 107 Modifying Egresss PM Parameters: atlasModifyEgressVcPM ................ 107 Getting Egress VC PM parameters: atlasReadEgressPM....................... 108 Modifying Egress VC PM parameters: atlasWriteEgressPM ................... 109 Activating/Deactivating Egress VC PM sessions: atlasWriteEgressPMActivation........................................................... 109
5.10 Cell Insertion/Extraction ........................................................................... 110 Writing Ingress Cell Buffer Structures: atlasInsertIngressCell ................. 110 Reading Cells From Microprocessor Ingress: atlasExtractIngressCell.....111 Reading Cells From Microprocessor Ingress (OAM cells only): atlasRxCell112 Writing Egress Cell Buffer Structures: atlasInsertEgressCell................... 112 Reading Cells from Microprocessor Egress: atlasExtractEgressCell ...... 113 5.11 Per-PHY Policing ..................................................................................... 113 Writing Internal Per-PHY Policing Contents: atlasWritePerPHYPolicing . 113
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
10
S/UNI-ATLAS (PM7324) Driver Manual
Reading Internal Per-PHY Policing Contents: atlasReadPerPHYPolicing114 5.12 Statistics ................................................................................................... 114 Reading Device Wide Counters: atlasGetDeviceCounts ......................... 115 5.13 Interrogation ............................................................................................. 115 Reading Ingress VC Table Changes: atlasGetIngressVCTableCOS ....... 115 Reading Egress VC Table Changes: atlasGetEgressVCTableCOS ........ 116 5.14 Interrupt Servicing .................................................................................... 116 Reading Interrupt Status Registers: atlasISR .......................................... 117 Processing Interrupt Status Information: atlasDPR.................................. 117 6 Hardware Interface ................................................................................................... 119 6.1 Device I/O ................................................................................................ 119 Reading Specific Address Contents: sysAtlasRawRead.......................... 119 Writing Specific Address Contents: sysAtlasRawWrite ............................ 119 Detecting New Devices: sysAtlasDeviceDetect ....................................... 120 Interrupt servicing..................................................................................... 120 Installing Process Vector Tables: sysAtlasIntInstallHandler ..................... 120 Deleting Message Queues: sysAtlasIntRemoveHandler ......................... 121 Enabling Interrupt Processing: sysAtlasIntHandler.................................. 121 Retrieving Interrupt Status Information: sysAtlasDPRtask....................... 122
6.2
7
RTOS interface ......................................................................................................... 123 7.1 Service Calls ............................................................................................ 123 Allocating Bytes: sysAtlasMemAlloc ........................................................ 123 De-Allocating Memory: sysAtlasMemFree............................................... 123 Setting Memory to a specified value: sysAtlasMemSet ........................... 124 Indication Callbacks ................................................................................. 124 Informing the User of OAM Cell Processing: indOAMRx......................... 127 Requesting a Backward Connection Information from the User : indBackEci128 Informing the User of an Occurrence of a System Exception : indException129 Informing the User of an Occurrence of a Normal Interrupt : indIndication129
7.2
8
Porting the Driver...................................................................................................... 131 8.1 8.2 8.3 Driver Source Files................................................................................... 131 Driver Porting Procedures........................................................................ 132 Driver Porting Procedures........................................................................ 132 Procedure 1 : Porting the Driver's RTOS Extensions .............................. 132 To port the driver's RTOS extensions: ..................................................... 132 Procedure 2: Porting the Driver to a Hardware Platform ......................... 133 To port the driver to your hardware platform: ........................................... 133 Procedure 3: Porting the Driver's Application-Specific Elements............. 134 To port the driver's application-specific elements: ................................... 134 Procedure 4: Building the Driver .............................................................. 135
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
11
S/UNI-ATLAS (PM7324) Driver Manual
Appendix: Coding Conventions....................................................................................... 136 Macros...................................................................................................... 137 Constants ................................................................................................. 137 Structures ................................................................................................. 137 Functions.................................................................................................. 138 Variables................................................................................................... 138 API Files ................................................................................................... 139 Hardware Dependent Files ...................................................................... 140 RTOS Dependant Files ............................................................................ 140 Other Driver Files ..................................................................................... 140 Acronyms ........................................................................................................................ 141 Index ............................................................................................................................... 142
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
12
S/UNI-ATLAS (PM7324) Driver Manual
LIST OF FIGURES
Figure 1: Driver Interfaces........................................................................................................................... 18 Figure 2: ATLAS driver architecture ........................................................................................................... 20 Figure 3: Software States ............................................................................................................................ 22 Figure 4: Module Management Flow Diagram............................................................................................ 24 Figure 5: Device Initialization, Re-initialization, and Shutdown .................................................................. 25 Figure 6: Interrupt Service Model................................................................................................................ 27 Figure 7: Polling Service Model .................................................................................................................. 29 Figure 8: Driver Source Files .................................................................................................................... 131
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
13
S/UNI-ATLAS (PM7324) Driver Manual
LIST OF TABLES
Table 1: Global Driver Database: sATLS_GDD .......................................................................................... 30 Table 2: Interrupt service routine manager: sATLS_ISR_MANAGER ........................................................ 30 Table 3: Device Data Block: sATLS_DDB ................................................................................................... 31 Table 4: ATLAS Initialization Vector: sATLS_INIT_VECTOR ...................................................................... 33 Table 5: Interrupt Enable Registers: sATLS_INT_EN_REGS ..................................................................... 33 Table 6: ATLAS Ingress Register Information: sATLS_INGRESS_REGS .................................................. 34 Table 7: ATLAS Egress Register Information: sATLS_EGRESS_REGS.................................................... 36 Table 8: ATLAS Performance Monitoring Register Information: sATLS_PM_REGS .................................. 38 Table 9: ATLAS Micro Processor Register Information: sATLS_MPCELL_REGS...................................... 39 Table 10: Interrupt Status Registers: sATLS_INT_STATUS........................................................................ 40 Table 11: Ingress Record Type: sATLS_INGRESS_RECORD ................................................................... 40 Table 12: Ingress OAM Defect Record: sATLS_INGRESS_OAMDEFECT................................................ 43 Table 13: Ingress Configuration Record: sATLS_INGRESS_CONFIG...................................................... 43 Table 14: Ingress OAM Configuration Record: sATLS_INGRESS_OAMCONFIG ..................................... 44 Table 15: Ingress Policing Record: sATLS_INGRESS_POLICING ............................................................ 44 Table 16: Ingress Counts Record: sATLS_INGRESS_COUNTS ............................................................... 45 Table 17: Ingress PM Record: sATLS_INGRESS_PM ............................................................................... 45 Table 18 : Ingress Translation Record: sATLS_INGRESS_TRANSLATION .............................................. 45 Table 19: Ingress Key Record: sATLS_INGRESS_KEY............................................................................. 46 Table 20: Egress Record Type: sATLS_EGRESS_RECORD..................................................................... 47 Table 21: Egress OAM Defect Record: sATLS_EGRESS_OAMDEFECT ................................................. 48 Table 22: Egress Configuration Record: sATLS_EGRESS_CONFIG ........................................................ 48 Table 23: Egress OAM Configuration Record: sATLS_EGRESS_OAMCONFIG ....................................... 49 Table 24: Egress Counts Record: sATLS_EGRESS_COUNTS ................................................................. 49 Table 25: Egress PM Record: sATLS_EGRESS_PM ................................................................................. 49
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
14
S/UNI-ATLAS (PM7324) Driver Manual
Table 26: Egress Key Record: sATLS_EGRESS_KEY............................................................................... 50 Table 27: Performance Monitoring Record: sATLS_PM_RECORD............................................................ 50 Table 28: Microprocessor Cell Interface Insert Control: sATLS_CELL_INS_CTRL.................................... 52 Table 29: Per-PHY Policing: sATLS_PER_PHY_POLICING ...................................................................... 52 Table 30: Atlas Statistics: sATLS_AGGR_COUNTS ................................................................................... 53 Table 31: Ingress Per-PHY Statistics: sATLS_I_PERPHY_COUNTERS ................................................... 54 Table 32: Egress Per-PHY Statistics: sATLS_E_PERPHY_COUNTERS................................................... 54 Table 33: Ingress Node Type: sATLS_IVC_NODE_TYPE.......................................................................... 55 Table 34: ATLAS Interrupt Reg #1 Categories .......................................................................................... 125 Table 35: ATLAS Interrupt Reg #2 Categories .......................................................................................... 125 Table 36: ATLAS Interrupt Reg #3 Categories .......................................................................................... 126 Table 37: ATLAS Interrupt Reg #4 Categories .......................................................................................... 126 Table 38: ATLAS Interrupt Reg #5 Categories .......................................................................................... 127 Table 39: Variable Type Definitions ........................................................................................................... 136 Table 40: Naming Conventions ................................................................................................................. 136 Table 41: File Naming Conventions .......................................................................................................... 139
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
15
S/UNI-ATLAS(PM7324) Driver Manual Introduction
1
INTRODUCTION
The following sections of the ATLAS Driver Manual describe the ATLAS device driver. The code provided throughout this document is written in C language. This has been done to promote greater driver portability to other embedded hardware (Section 6) and Real Time Operating System (Section 7) environments. Section 3 of this document, Software Architecture, defines the software architecture of the ATLAS device driver by including a discussion of the driver's external interfaces and its main components. The Data Structure information in Section 4 describes the elements of the driver that configure or control its behavior. Included here are the constants, variables and structures that the ATLAS device driver uses to store initialization, configuration and statistics information. Section 5 provides a detailed description of each function that is a member of the ATLAS driver Application Programming Interface (API). The section outlines function calls that hide devicespecific details and application callbacks that notify the user of significant device events. For your convenience, Section 8of this manual provides a brief guide for porting the device ATLAS driver to your hardware and RTOS platform. In addition, an extensive Appendix (page 136) and Index (page 142) provides you with useful reference information.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
16
S/UNI-ATLAS(PM7324) Driver Manual Driver Functions and Features
2
DRIVER FUNCTIONS AND FEATURES
This section describes the main functions and features supported by the ATLAS driver. Table 2: Driver Functions and Features Function Device Initialization (page 57) Read / Write Device Registers (page 58) Add / Delete Device (page 59) Description The initialization function resets then initializes the device and any associated context information about it. The driver uses this context information to control and monitor the ATLAS device. These functions provide a `raw' interface to the device. Device registers that are both directly and indirectly accessible are available for both inspection and modification via these functions. If applicable, block reads and writes are also available. Adding a device involves verifying that the device exists, associating a device Handle with the device, and then storing context information about it. The driver uses this context information to control and monitor the device. Deleting a device involves shutting down the device and clearing the memory used for storing context information about this device. Activate / De-Activate Device (page 60) Activating a device puts it into its normal mode of operation by enabling interrupts and other global registers. A successful device activation also enables other API invocations. De-activating a device removes it from its operating state; it also disables interrupts and other global registers. Statistics Collection (page 114 ) Interrupt Servicing / Polling (page 116) Functions are provided to retrieve a snapshot of the various counts that are being accumulated by the ATLAS device. These routines should be invoked often enough to avoid letting the counters to rollover. Interrupt Servicing is an optional feature. The user can disable device interrupts and instead poll the device periodically to monitor status and check for alarm/error conditions. Both polling and interrupt driven approaches detect a change in device status and report the status to a Deferred Processing Routine (DPR). The DPR then invokes application callback functions based on the status information retrieved. This allows the driver to report significant events that occur within the device to the application.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
17
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
3
SOFTWARE ARCHITECTURE
This section describes the software architecture of the ATLAS device driver. This includes a discussion of the driver's external interfaces and its main components.
3.1
Driver Interfaces
Figure 1 illustrates the external interfaces defined for the ATLAS device driver. Figure 1: Driver Interfaces
Application
Function Calls
Application Callbacks
Service Callbacks
ATLAS Device Driver
RTOS
Service Calls
Hardware Interrupts
Register Accesses
ATLAS Device
3.2
Application Programming Interface
The driver's API is a collection of high level functions that can be called by application code to configure, control, and monitor the ATLAS device, such as: * Initializing the device
18
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
* * *
Validating device configuration Retrieving device status and statistics information Diagnosing the device
The driver API functions use the driver library functions as building blocks to provide this system level functionality (see below).
3.3
Driver Hardware Interface
The Hardware Interface provides routines to read and write ATLAS registers. The Hardware Interface also provides a template for an Interrupt Service Routine (ISR) that is called when a hardware interrupt is raised. This routine needs to be modified based on the interrupt configuration of the system being used.
3.4
RTOS Interface
The RTOS interface module provides functions that enable the driver to use RTOS services. The ATLAS driver requires memory, interrupt, and preemption services from the RTOS. The RTOS interface functions perform the following tasks for the ATLAS device and driver: * * * Allocate and deallocate memory Manage buffers for the DPR and ISR Start and stop task execution
The RTOS interface also includes service callbacks. These functions are called by the driver in order to use RTOS service calls, such as install interrupts and start timers. Note: You must modify RTOS interface code to suit your RTOS.
3.5
Main Components
Figure 2 illustrates the top level architectural components of the ATLAS device driver. This applies in both polled and interrupt driven operation. Polled operations call ISR periodically. When in interrupt operation mode, the interrupt directly triggers the ISR. The driver includes four main modules: * Driver library module
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
19
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
* * *
Device data-block module Interrupt-service routine module Deferred-processing routine module
Figure 2: ATLAS driver architecture
Application Function Calls Service Callbacks ATLAS DRIVER Register Access ATLAS DEVICE RTOS Interface Service Calls RTOS Indication Callbacks Driver API
Deferred Processing Routine GDD Interrupt Context
Device Data Blocks
Driver Library Functions
Interrupt Servicing Routine Hardware Interface Hardware Interrupts
Driver Library Module
The driver library module is a collection of low-level utility functions that manipulate the device registers and the contents of the driver's Device Data-Block (DDB). The driver library functions serve as building blocks for higher level functions that constitute the driver API module. Application software does not usually call the driver library functions.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
20
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
Global Driver Database and Device Data-Blocks
The Global Driver Database (GDD) is the top layer data structure. It is created by the ATLAS device driver to keep track of its initialization and operating parameters, modes, and dynamic data. The Device Data Block is contained in the GDD and is initialized by the device Module for each ATLAS device that is registered. There is one DDB per device and there is a limit on the number of DDBs, and that limit is set by the user when the module is initialized. The DDB is used to store context information about one device, such as : * * * * Device state Control information Initialization parameters Callback function pointers
The driver allocates context memory for the DDB when the driver registers a new device.
Interrupt-Service Routine Module
The ATLAS driver provides an ISR called atlasISR that checks if any valid interrupt conditions are present for the device. This function can be used by a system-specific interrupt-handler function to service interrupts raised by the device. The low-level interrupt-handler function that traps the hardware interrupt and calls atlasISR, is system and RTOS dependent. Therefore, it is outside the scope of the driver. See page 120 for a detailed explanation of the platform specific routines that must be supplied by the user.
Deferred-Processing Routine Module
The Deferred-Processing Routine Module provided by the ATLAS driver (atlasDPR) clears and processes interrupt conditions for the device. Typically a system specific function, which runs as a separate task within the RTOS, executes the DPR. See page 122 for a detailed explanation of the DPR and interrupt-servicing model.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
21
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
3.6
Software State Description
Figure 3 shows the software state diagrams for the ATLAS module and device(s) as maintained by the driver. Figure 3: Software States
Start
atlasModuleInit
atlasModuleShutdown
Ready
MODULE STATES
Start
atlasAdd
atlasDelete
Present atlasReset atlasInit atlasActivate Inactive atlasDeActivate PER-DEVICE STATES Active atlasReset
The diagram shows state transitions made on the successful execution of the corresponding transition routines. State information helps maintain the integrity of the GDD and DDB(s) by controlling the set of operations allowed in each state.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
22
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
3.7
Module States
Start
The ATLAS driver Module is not initialized. The only API function accepted in this state is atlasModuleInit. In this state the driver does not hold any RTOS resources (memory, timers, etc), has no running tasks, and performs no actions.
Ready
The normal operating state for the driver module is "Ready" and can be entered by a call to atlasModuleInit. The Global Driver Database has been allocated and loaded with current data; and the RTOS has responded favorably to all the requests sent to it by the driver. The only API functions accepted in this state is atlasModuleShutdown. The driver Module remains in this state while devices are in operation. Add devices via atlasAdd.
3.8
Device States
The following is a description of the ATLAS per-device states.
Start
The ATLAS device is not initialized. The only API function accepted in this state is atlasAdd. In this state the device is unknown by the driver and performs no actions.
Present
The ATLAS Device has been successfully added via the API function atlasAdd. A Device Data Block (DDB) is associated to the device and a device handle is provided for the USER. In this state, the device performs no actions. The only API functions accepted in this state are atlasInit and atlasDelete.
Active
The normal operating state for the device(s) enters by a call to atlasActivate. State changes initiate from the ACTIVE state via atlasDeActivate, atlasReset and atlasDelete.
Inactive
Enter "Inactive" via the atlasInit or atlasDeActivate function calls. In this state the device remains configured but all data functions de-activate. This includes interrupts and Alarms, Status and Statistics functions. atlasActivate will return the device to the ACTIVE state, while atlasReset or atlasDelete will de-configure the device. Queues are torn down.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3 23
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
3.9
Processing Flows
This section describes the main processing flows of the ATLAS driver. The flow diagrams presented here illustrate the sequence of operations that take place for different driver functions. The diagrams also serve as a guide to the application programmer by illustrating the sequence in which the driver API must be invoked.
Module Management
The following diagram illustrates the typical function call sequences that occur when either initializing or shutting down the ATLAS driver module. Figure 4: Module Management Flow Diagram
START
atlasModuleInit
Performs module level initialization of the driver. Allocates memory for the driver. Perform all device level functions here (add, init, activate, de-activate, reset, delete,...)
atlasModuleShutdown
Performs Module level shutdown of the driver. This involves deleting all devices currently installed. De-allocates all the driver's memory.
END
Device Initialization, Re-initialization, and Shutdown
The following figure shows the functions and process that the driver uses to initialize, re-initialize, and shutdown the ATLAS device.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
24
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
Figure 5: Device Initialization, Re-initialization, and Shutdown
START
atlasAdd
Detects the device being added in the hardware (using sysAtlasDeviceDetect), allocates memory for storing device context information, and applies a software reset to the device. Initializes the device based on an initialization vector provided by the user. The initialization vector is validated by the user and stored by the driver as part of device context information. The device registers are then configured accordingly.
atlasInit
atlasActivate
Prepares the device for normal operation by enabling interrupts. Enables Ingress and Egress cell-processing. An ISR function is installed using sysAtlasIntInstallHandler. The device is now operational and all other API can be invoked.
atlasReset
In order to re-initialize the device, resets the device using atlasReset and goes through the initialization sequence again.
atlasDeactivate
De-activates the device and removes it from normal operation. This involves disabling the device interrupts. It also disables Ingress and Egress cell processing. The ISR routine for this device is removed using sysAtasIntRemoveHandler. Applies a software reset to the device to put it in its default startup state. It also resets the context information for that device.
atlasReset
atlasDelete
Removes the device from the list of devices being controlled by the Atlas driver. This function de-allocates the device context information for the device being deleted.
END
Cell Extraction
The cell extraction is performed in atlasDPR. When a cell is received in the microprocessor cell FIFO, the sysTxMsg task is started and the atlasRxCell API is called. Only the OAM Loopback and Activation/Deactivation cells are processed in atlasRxCell. The user must supply two callback functions: indOamRx and indBackEci. See Section 7.2, Callback Functions, to learn more about these callbacks.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
25
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
3.10 Interrupt Servicing
The interrupt servicing code includes some system specific code (routines prefixed by sys) that is typically implemented by the user for their system as well some generic code (prefixed by ATLAS) provided by the driver that does not change from system to system. user that is installed in the interrupt vector table of the system processor. This routine is invoked when one or more ATLAS devices interrupt the processor. sysAtlasIntHandler then invokes a driver provided routine, atlasISR, for each device in the active state. atlasISR reads the Master Interrupt Status register of the ATLAS and returns with this status information if a valid status bit is set. This status information is then saved by sysAtlasIntHandler. Saving the status information for deferred processing is typically implemented as a message queue. Status information is sent to this queue by the sysAtlasIntHandler. This information is then dequeued for later processing.
The sysAtlasDPRtask is a system-specific routine that runs as a separate task within the RTOS. In the message queue implementation model, this task has an associated message queue. The task waits for messages on this message queue. When a message is received, the driversupplied Deferred Processing Routine (atlasDPR) is invoked. The atlasDPR processes the status information and takes appropriate action based on the specific interrupt condition detected. Since the nature of this processing can differ from system to system, the DPR invokes different indication callbacks for different interrupt conditions. These callbacks can then be customized to fit the user's specific requirements. The sysAtlasIntHandler is a system-specific interrupt handler routine implemented by the
Note that since the atlasISR and atlasDPR routines themselves do not specify a communication mechanism, the user is given full flexibility in choosing a communication mechanism between the two. A convenient way to implement this communication mechanism is to use a message queue, a service that is provided by most RTOSs. The two system specific routines, sysAtlasIntHandler and sysAtlasDPRtask, are implemented by the user. sysAtlasIntHandler is installed in the interrupt vector table of the processor when the sysAtlasIntInstallHandler is called for the first time. The sysAtlasDPRtask routine is also spawned as a task during this first time invocation of the sysAtlasIntInstallHandler. In addition, sysAtlasIntInstallHandler also creates the communication channel between sysAtlasIntHandler and sysAtlasDPRtask. This communication channel is most commonly a message queue associated with the
sysAtlasDPRtask.
Similarly, during removal of interrupts, the sysAtlasIntHandler routine is removed from the microprocessor's interrupt vector table and the task associated with the sysAtlasDPRtask is deleted. If interrupts are not available they can be simulated by providing a high priority task that polls the active ATLAS devices periodically.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
26
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
For each active ATLAS device, this high priority task calls the atlasISR. The ISR will then process the state of each device and may, if necessary, pass the device status to the atlasDPR. The altasDPR behaves the same in either model. The high priority polling task should be at a higher priority than the altasDPR; also, it should poll frequently enough to handle device conditions in a timely manner. For the polling model, rather than installing the sysAtlasIntHandler as an interrupt, the high priority polling task should be activated. Similarly, rather than removing the interrupt handler, the polling task should be stopped. The DPR processing should be the same in both cases. Figure 6 illustrates the interrupt service model used in the ATLAS driver design. Figure 6: Interrupt Service Model
Interrupt Context Information
sysAtlasIntHandler atlasISR
sysAtlasDPRTask atlasDPR
Indication Callbacks Application
Note: Instead of using an interrupt service model, you can use a polling service model in the ATLAS driver to process the device's event-indication registers (see page 28).
Calling atlasISR
An interrupt handler function, which is system dependent, calls atlasISR. Before this, however, the low-level interrupt-handler function traps the device interrupts. You must implement this function for your system. For your reference, an example implementation of the interrupt handler (sysAtlasIntHandler) appears on page 120. You can customize this example to suit your needs. The interrupt handler (sysAtlasIntHandler) installs in the interrupt vector table of the system processor. It calls when one or more ATLAS devices interrupt the processor. The interrupt handler subsequently calls atlasISR for each device in the active state. atlasISR reads from the ATLAS interrupt-status registers. If there are interrupts outstanding, this is indicated by atlasISR. The sysAtlasIntHandler then sends a message to the DPR task that consists of the device handle of the ATLAS device and the indicated interrupts. The ISR also examines the interrupt itself for exception conditions. If these are present, it will call the system exception callback directly.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
27
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
Note: Normally you should save the status information for deferred processing by implementing a message queue. The interrupt handler uses sysAtlasIntHandler to send the status information to the queue.
Calling atlasDPR
sysAtlasDPRTask is a system specific function that runs as a separate task within the RTOS. You should set the DPR task's priority higher than that of the application task(s) interacting with the ATLAS driver. In the message-queue implementation model, this task has an associated message queue. The task waits for messages from the ISR on this message queue. When a message arrives, sysAtlasDPRTask calls the DPR (atlasDPR). Then atlasDPR processes the status information to ensure a valid indication is present; after that it makes the callback.
Typically, you should implement these callback functions as simple message posting functions that post messages to an application task. However, you can implement the indication callback to perform processing within the DPR task context and return without sending any messages. In this case, ensure that the indication function does not call any API functions that change the driver's state, such as atlasDelete. You can customize this callback to suit your system. See page 60 for a description of the callback function. Note: Since the atlasISR and atlasDPR routines themselves do not specify a communication mechanism, you have full flexibility in choosing a communication mechanism between the two. A convenient way to implement this communication mechanism is to use a message queue, which is a service that most RTOS's provide. You must implement the two system specific routines, sysAtlasIntHandler and sysAtlasDPRTask. When sysAtlasIntInstallHandler is called for the first time, sysAtlasIntHandler is installed in the interrupt vector table of the processor. The sysAtlasDPRTask routine is also spawned as a task during this first time invocation of sysAtlasIntInstallHandler. In addition, sysAtlasIntInstallHandler creates the communication channel between sysAtlasIntHandler and sysAtlasDPRTask. This communication channel is most commonly a message queue associated with sysAtlasDPRTask. Similarly, during the removal of interrupts, the sysAtlasIntHandler function is removed from the microprocessor's interrupt vector table and the task associated with sysAtlasDPRTask is deleted when the last atlas device is removed. As a reference, this manual provides example implementations of the interrupt installation and removal functions. For more information about the interrupt removal function and prototype, see page 121. You can customize these prototypes to suit your specific needs.
Polling Servicing
Instead of using an interrupt service model, you can use a polling service model in the ATLAS driver to process the device's event-indication registers. Figure 7 illustrates the polling service model used in the ATLAS driver design.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3 28
S/UNI-ATLAS(PM7324) Driver Manual Software Architecture
Figure 7: Polling Service Model
Indication Callbacks atlasISR Interrupt Context Information atlasDPR Application
The polling service code includes some system specific code (prefixed by "sysAtlas"), which typically you must implement for your application. The polling service code also includes some system independent code (prefixed by "Atlas") provided by the driver that does not change from system to system. In sysAtlasIntPollTask, the driver-supplied ISR (atlasISR) is periodically called for each device in the active state. The atlasISR reads from the interrupt-status registers of the ATLAS. If some valid status bits are set, it processes the status information and takes appropriate action based on the specific interrupt condition detected. Similarly, during removal of polling service, the task associated with sysAtlasPollTask is deleted when the last ATLAS device is deactivated.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
29
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
4
DATA STRUCTURES
The following are the main data structures employed by the ATLAS driver.
4.1
Global Driver Database
The Global Driver Database (GDD) stores module level data, such as the number of devices that the driver controls and an array of pointers to the individual Device Data Blocks. The GDD is allocated when the ATLAS module is started Table 1: Global Driver Database: sATLS_GDD Field Name
numDevs isrManager pDdb[ATLS_MAX_NUM_DEVS]
Field Type
UINT1 sATLS_ISR_MANAGER sATLS_DDB
Field Description Number of Devices currently managed ISR Manager. Array of pointers to the individual DDBs
Interrupt Service routine manager
The ISR manager is responsible for installing and uninstalling the ISR into the vector table. Table 2: Interrupt service routine manager: sATLS_ISR_MANAGER Field Name
numDevs
Field Type
UINT1
Field Description Number of Devices currently managed
Device Data Block
The Device Data Block (DDB) stores control and status information for a single ATLAS device. The DDB is allocated when a new device is added and is de-allocated when an existing device is deleted.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
30
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Table 3: Device Data Block: sATLS_DDB Field Name
EdevState
Field Type
eATLS_STATE
Field Description Device state, which can be one of the following:
ATLS_EMPTY ATLS_PRESENT ATLS_INIT ATLS_ACTIVE
SinitVector
sATLS_INIT_VECTOR
Device configuration information passed by the user to the driver. The driver writes to the appropriate ATLAS registers based on the contents of this vector. This variable is used to store the user's context for the device. It is passed as an input parameter when the driver invokes an application callback. System specific information. Address of the ATLAS device in the memory map Maximum number of ingress VCs Maximum number of egress VCs Indicates that the Egress VC has been initialized. Indicates that the Ingress VC has been initialized. This represents the Ingress Primary table for the Device. This represents the Ingress Secondary table for the Device. Ingress Secondary Address List. Indicates whether an Ingress secondary record is free. The Ingress Secondary Address Keys. Indicates whether an Egress record is in use.
UsrCtxt
ATLS_USR_CTXT
PsysInfo deviceAddr ingressMaxVCs egressMaxVCs evcInitialised ivcInitialised ivcPrimaryTable
VOID * UINT1 * UINT4 UINT4 UINT1 UINT1 sATLS_IVC_PRIMARY _TABLE
ivcSecondaryTable ivcSecondaryAddrList ivcRecordAddrFree ivcSecondaryKeys evcRecordAddrExists
sATLS_IVC_SECONDA RY_TABLE sATLS_IVC_SECONDA RY_ADDR_LIST sATLS_IVC_RECORD_ ADDR_FREE sATLS_IVC_SECONDA RY_KEYS sATLS_EVC_RECORD_ ADDR_EXISTS
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
31
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
ingressBank1PMFree ingressBank2PMFree egressBank1PMFree egressBank2PMFree ivcPhyIdMask ivcPhyIdLength ivcMaxPhyIdValue ivcFieldAMask ivcFieldALength ivcMaxFieldAValue ivcFieldBMask ivcFieldBLength ivcMaxFieldBValue evcPhyIdMask evcPhyIdLength evcMaxPhyIdValue evcFieldAMask evcFieldALength evcMaxFieldAValue evcFieldBMask evcFieldBLength evcMaxFieldBValue defaultEvcRam
Field Type
sATLS_INGRESS_PM_ FREE sATLS_INGRESS_PM_ FREE sATLS_EGRESS_PM_F REE sATLS_EGRESS_PM_F REE UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 sATLS_EVCRAM_TYPE
Field Description Indicates whether a PM Record is free in the Ingress Bank 1 list. Indicates whether a PM Record is free in the Ingress Bank 2 list. Indicates whether a PM Record is free in the Egress Bank 2 list. Indicates whether a PM Record is free in the Egress Bank 2 list. Ingress phy Id mask Ingress phy Id length Ingress Max phy Id Ingress Field A Mask Ingress Field A Length Ingress Max Field A Value Ingress Field B Mask Ingress Field B Length Ingress Max Field B Value Egress phy Id mask Egress phy Id length Egress Max phy Id Egress Field A Mask Egress Field A Length Egress Max Field A Value Egress Field B Mask Egress Field B Length Egress Max Field B Value Default EVC Ram contents. This is the device encoded version of the Default EVC record in the Initialization Vector Callback control block.
sCb
sATLS_CB
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
32
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Initialization Vector
The user defines the initialization vector before initializing an ATLAS device. The initialization vector contains various configuration parameters that are used by the driver to program the ATLAS control registers. The initialization vector specifies many configuration parameters. These are broken into functional areas. Table 4: ATLAS Initialization Vector: sATLS_INIT_VECTOR Field Name
masterCfg intEnRegs ingressCfg egressCfg mPCellCfg pMCfg defEgRecord indOamRx indException indIndication indBackEci
Field Type
UINT2 sATLS_INT_EN_REGS sATLS_INGRESS_REGS sATLS_EGRESS_REGS sATLS_MPCELL_REGS sALTS_PM_REGS sATLS_EGRESS_RECORD ATLS_IND_OAM_RX ATLS_IND_SYS_EXCEPT ATLS_IND_INDICATION ATLS_IND_BACKWARD_ECI
Field Description Master configuration register Interrupt enables registers Ingress interface configuration Egress interface configuration Microprocessor cell interface registers Performance memory registers Default Egress Record. This is used to populate inactive Egress records. OAM support callback. Exceptions callback General purpose Callback. Backward connection ID request callback.
Interrupt Enable Registers
The ATLAS Interrupt Enable Register settings are stored in the following structure. Table 5: Interrupt Enable Registers: sATLS_INT_EN_REGS Field Name
intEn[0] intEn[1] intEn[2] intEn[3]
Field Type
UINT2 UINT2 UINT2 UINT2
Field Description Interrupt enable register 1 Interrupt enable register 2 Interrupt enable register 3 Interrupt enable register 4
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
33
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
intEn[4]
Field Type
UINT2
Field Description Interrupt enable register 5
Ingress Registers
The Ingress Register information collects together all the registers used to configure the Ingress portion of the device. This includes the following functional areas: * * * * * Ingress cell interface Global ingress input/output PHY Ingress OAM Ingress PHY/connection policing Ingress VC table configuration
Table 6: ATLAS Ingress Register Information: sATLS_INGRESS_REGS Field Name
ingInCellCfg1 ingInCellCfg2 ingOutCellCfg1 ingOutCellCfg2 ingRDIBackOAMcfg ingBackRptCfg ingSearchCfg ingFieldACfg ingFieldBCfg ingCellProcCfg1 ingPHYPolice1 ingPHYPolice2 ingPHYPolCfg1_2 ingPHYPolCfg3_4 ingConPolCfg1
Field Type
UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2
Field Description Ingress Input Cell Interface Configuration 1 Ingress Input Cell Interface Configuration 2 Ingess Output Cell Interface Configuration 1 Ingess Output Cell Interface Configuration 2 Ingress RDI Backward OAM Cell Interface Configuration Ingress Backward Reporting OAM Cell Interface Configuration Ingress Search Engine Configuration FieldA Location and Length Field B Location and Length Ingress Cell Processor Configuration 1 Ingress PHY Policing 1 Ingress PHY Policing 2 Ingress PHY Policing Configuration 1&2 Ingress PHY Policing Configuration 3&4 Ingress Connection Policing Configuration 1
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
34
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
ingConPolCfg2 ingConPolCfg3 ingConPolCfg4 ingConPolCfg5 ingConPolCfg6 ingConPolCfg7 ingConPolCfg8 ingPolCfgNonCompCnt ingCellRtgCfg ingOAMCellGenCfg ingPerPHYAISCfg1 ingPerPHYAISCfg2 ingPerPHYRDICfg1 ingPerPHYRDICfg2 ingOAMDefType0_1 ingOAMDefType2_3 ingOAMDefType4_5 ingOAMDefType6_7 ingOAMDefType8_9 ingOAMDefType10_11 ingOAMDefType12_13 ingOAMDefType14_15 ingDefLoc0_1 ingDefLoc2_3 ingDefLoc4_5 ingDefLoc6_7 ingDefLoc8_9 ingDefLoc10_11 ingDefLoc12_13 ingDefLoc14_15
Field Type
UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2
Field Description Ingress Connection Policing Configuration 2 Ingress Connection Policing Configuration 3 Ingress Connection Policing Configuration 4 Ingress Connection Policing Configuration 5 Ingress Connection Policing Configuration 6 Ingress Connection Policing Configuration 7 Ingress Connection Policing Configuration 8 Ingress Policing Configuration and Non-Compliant Cell Counting Ingress Cell Routing Configuration Ingress OAM Cell Generation Configuration Ingress Per-PHY AIS Cell Generation Control 1 Ingress Per-PHY AIS Cell Generation Control 2 Ingress Per-PHY RDI Cell Generation Control 1 Ingress Per-PHY RDI Cell Generation Control 2 Ingress OAM Defect Type 0&1 Ingress OAM Defect Type 2&3 Ingress OAM Defect Type 4&5 Ingress OAM Defect Type 6&7 Ingress OAM Defect Type 8&9 Ingress OAM Defect Type 10&11 Ingress OAM Defect Type 12&13 Ingress OAM Defect Type 14&15 Ingress Defect Location Octets 0&1 Ingress Defect Location Octets 2&3 Ingress Defect Location Octets 4&5 Ingress Defect Location Octets 6&7 Ingress Defect Location Octets 8&9 Ingress Defect Location Octets 10&11 Ingress Defect Location Octets 12&13 Ingress Defect Location Octets 14&15
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
35
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
ingCellCntCfg1 ingCellCntCfg2 ingCellProcCfg2 ingMaxFrame ingVCTableMax ingPerPHYAPSIndCfg1 ingPerPHYAPSIndCfg2 ingPerPHYCountCfg
Field Type
UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2
Field Description Ingress Cell Counting Configuration 1 Ingress Cell Counting Configuration 2 Ingress Cell Processor Configuration 2 Ingress Maximum Frame Length Count Ingress VC Table Maximum Index Ingress Per-PHY APS Indication Configuration 1 Ingress Per-PHY APS Indication Configuration 2 Ingress Per-PHY Counter Configuration
Egress Registers
The Egress Register information collects together all the registers used to configure the Egress portion of the device. This includes the following functional areas: * * * * * Egress cell interface Global egress input/output PHY Egress OAM Egress Per-PHY counter configuration Egress VC table configuration
Table 7: ATLAS Egress Register Information: sATLS_EGRESS_REGS Field Name
egInCellCfg1 egInCellCfg2 egOutCellCfg1 egOutCellCfg2 egRDIBackOAMCfg egBackRptCfg egCellProcCfg egCellRtgCfg
Field Type
UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2
Field Description Egress Input Cell Interface Configuration 1 Egress Input Cell Interface Configuration 2 Egress Output Cell Interface Configuration 1 Egress Output Cell Interface Configuration 2 Egress RDI Backward OAM Cell Interface Configuration Egress Backward Reporting OAM Cell Interface Configuration Egress Cell Processor Configuration Egress Cell Routing Configuration
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
36
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
egCellDirCfg1 egCellDirCfg2 egBackOAMHOLCfg egPacedAISCCCfg egPacedFwdPMCfg egPerPHYAISCfg1 egPerPHYAISCfg2 egPerPHYRDICfg1 egPerPHYRDICfg2 egPerPHYAPSInd1 egPerPHYAPSInd2 egVCCountingCfg1 egVCCountingCfg2 egOAMDefType0_1 egOAMDefType2_3 egOAMDefType4_5 egOAMDefType6_7 egOAMDefType8_9 egOAMDefType10_11 egOAMDefType12_13 egOAMDefType14_15 egDefLoc0_1 egDefLoc2_3 egDefLoc4_5 egDefLoc6_7 egDefLoc8_9 egDefLoc10_11
Field Type
UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2
Field Description Egress Cell Processor Direct Lookup Index Configuration 1 Egress Cell Processor Direct Lookup Index Configuration 2 Egress Backward OAM Cell Interface Head Of Line Time Out Configuration Egress Paced AIS/CC Cell Generation Configuration Egress Paced Fwd PM Cell Generation Configuration Egress Per-PHY AIS Cell Generation Control 1 Egress Per-PHY AIS Cell Generation Control 2 Egress Per-PHY RDI Cell Generation Control 1 Egress Per-PHY RDI Cell Generation Control 2 Egress PerPHY APS Indication Configuration 1 Egress PerPHY APS Indication Configuration 2 Egress VC Table Counting Configuration 1 Egress VC Table Counting Configuration 2 Egress OAM Defect Type 0&1 Egress OAM Defect Type 2&3 Egress OAM Defect Type 4&5 Egress OAM Defect Type 6&7 Egress OAM Defect Type 8&9 Egress OAM Defect Type 10&11 Egress OAM Defect Type 12&13 Egress OAM Defect Type 14&15 Egress Defect Location Octets 0&1 Egress Defect Location Octets 2&3 Egress Defect Location Octets 4&5 Egress Defect Location Octets 6&7 Egress Defect Location Octets 8&9 Egress Defect Location Octets 10&11
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
37
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
egDefLoc12_13 egDefLoc14_15 egVCTableMax egPerPHYCountCfg
Field Type
UINT2 UINT2 UINT2 UINT2
Field Description Egress Defect Location Octets 12&13 Egress Defect Location Octets 14&15 Egress VC Table Maximum Index Egress Per-PHY Counter Configuration
Performance Monitoring Configuration
The performance Monitoring Configuration information collects together all the registers used to configure the Global control of the Performance Monitoring Memory. This includes the following functional areas: * * Ingress Monitoring Thresholds Egress Monitoring Thresholds
Table 8: ATLAS Performance Monitoring Register Information: sATLS_PM_REGS Field Name
ingBackOAMPacingCfg ingCellProcF4PMMap ingCellProcF5PMMap ingPacedFwdPMCell ingPMThreshA1 ingPMThreshA2 ingPMThreshB1 ingPMThreshB2 ingPMThreshC1 ingPMThreshC2 ingPMThreshD1 ingPMThreshD2 egBackOAMPacingCfg egCellProcF4PMMap egCellProcF5PMMap
Field Type
UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2
Field Description Ingress Backward OAM Cell Pacing Configuration Ingess Cell Processor F4-PM Flow VCI Map Ingress Cell Processor f5-PM Flow PTI Map Ingress Paced Fwd PM Cell Generation Ingress Performance Monitoring Threshold A1 Ingress Performance Monitoring Threshold A2 Ingress Performance Monitoring Threshold B1 Ingress Performance Monitoring Threshold B2 Ingress Performance Monitoring Threshold C1 Ingress Performance Monitoring Threshold C2 Ingress Performance Monitoring Threshold D1 Ingress Performance Monitoring Threshold D2 Egress Backward OAM Cell Pacing Configuration Egess Cell Processor F4-PM Flow VCI Map Egress Cell Processor f5-PM Flow PTI Map
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
38
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
egPMThreshA1 egPMThreshA2 egPMThreshB1 egPMThreshB2 egPMThreshC1 egPMThreshC2 egPMThreshD1 egPMThreshD2
Field Type
UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2
Field Description Egress Performance Monitoring Threshold A1 Egress Performance Monitoring Threshold A2 Egress Performance Monitoring Threshold B1 Egress Performance Monitoring Threshold B2 Egress Performance Monitoring Threshold C1 Egress Performance Monitoring Threshold C2 Egress Performance Monitoring Threshold D1 Egress Performance Monitoring Threshold D2
Microprocessor Cell Interface Configuration
Microprocessor Cell Interface information collects together all the registers used to configure the Microprocessor Ingress/Egress Cell interfaces. This includes the following functional areas: * * Ingress Microprocessor cell interface Egress Microprocessor cell interface
Table 9: ATLAS Micro Processor Register Information: sATLS_MPCELL_REGS Field Name
ingMPCExtCfg ingMPCInsCfg egMPCExtCfg egMPCInsCfg
Field Type
UINT2 UINT2 UINT2 UINT2
Field Description Ingress Microprocessor Extract Cell Configuration Ingress Microprocessor Insert Cell Configuration Egress Microprocessor Extract Cell Configuration Egress Microprocessor Insert Cell Configuration
Interrupt Status information
The ATLAS Interrupt Status register information is returned to the application in the following structure.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
39
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Table 10: Interrupt Status Registers: sATLS_INT_STATUS Field Name
intSt[0] intSt[1] intSt[2] intSt[3] intSt[4]
Field Type
UINT2 UINT2 UINT2 UINT2 UINT2
Field Description Interrupt status register 1 Interrupt status register 2 Interrupt status register 3 Interrupt status register 4 Interrupt status register 5
Ingress Record Type
This record mirrors the Ingress VC record documented in the ATLAS Hardware Specification, with some addressing information prepended. Table 11: Ingress Record Type: sATLS_INGRESS_RECORD Field Name
fieldA cLPccEn f4ToF5Ais phyId row1Unused0 pmActive2 pmAddr2 pmActive1 pmAddr1 nni fieldB vpi vci status configuration internalStatus
Field Type
UINT2 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT2 UINT2 UINT2 UINT1 UINT2 UINT4
Field Description Field a, used as search key only, not part of the device record. CLP Conformance Check Enable F4 to F5 AIS Generation Control PHY ID Unused PM2 on/off flag PM2 Session Address PM1 on/off flag PM1 Session Address Network-Network Interface flag Field B Virtual Path Identifier Virtual Connection Identifier Ingress internal Status indicator Ingress VC Table configuration field Ingress internal status field
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
40
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
oamConfiguration vpcPointer cocup row3Reserved tat2 tat1 gfr policeConfiguration action2 action1 i2 l2 i1 l1 phyPolice remainingFrameCount violate gfrState nonCompliant3 nonCompliant2 nonCompliant1 ingressCellCount2 ingressCellCount1 header[ATLS_IVC_HEADER_SIZE] udf prePo1 prePo2 prePo3 prePo4 prePo5
Field Type
UINT2 UINT2 UINT1 UINT1 UINT4 UINT4 UINT1 UINT1 UINT1 UINT1 UINT2 UINT2 UINT2 UINT2 UINT1 UINT2 UINT1 UINT1 UINT2 UINT2 UINT2 UINT4 UINT4 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1
Field Description Ingress VC table OAM configuration field VPC pointer Conditional Conformance update Unused Theoretical Arrival Time 2 Theoretical Arrival Time 1 Guaranteed Frame Rate Policing Configuration Action on Non-conforming GCRA2 Action on Non-conforming GCRA1 Increment 2 Limit 2 Increment 1 Limit 1 PHY Policing on/off Remaining Frame Count Tag all cells as Violating Internal GFR State Non-compliant Cell count 1 Non-compliant Cell count 2 Non-compliant Cell count 3 Ingress Cell Count 2 Ingress Cell Count 1 New cell Header for translation User Defined Field PrePend/PostPend 1 PrePend/PostPend 2 PrePend/PostPend 3 PrePend/PostPend 4 PrePend/PostPend 5
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
41
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
prePo6 prePo7 prePo8 prePo9 prePo10 alternateIngressCellCount2 alternateIngressCellCount1 row10Unused1 row10Unused0 maximumFrameLength rxSegmentDefectType rxEndToEndDefectType rxEndToEndAisDefectLoc[ATLS_IVC_AI S_DEFECT_LOCATION_SIZE] rxSegmentAisDefectLoc[ATLS_IVC_AIS _DEFECT_LOCATION_SIZE]
Field Type
UINT1 UINT1 UINT1 UINT1 UINT1 UINT4 UINT4 UINT4 UINT1 UINT2 UINT1 UINT1 UINT1 UINT1
Field Description PrePend/PostPend 6 PrePend/PostPend 7 PrePend/PostPend 8 PrePend/PostPend 9 PrePend/PostPend 10 Alternate Ingress Cell Counter 2 Alternate Ingress Cell Counter 1 Unused Unused Maximum Frame Length Segment AIS Type End to End AIS Type End to End AIS Location Segment AIS Location
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
42
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Ingress OAM Defect Record
This record collects together all the fields used to configure the OAM defect support in the Ingress VC table documented in the ATLAS Hardware Specification. Table 12: Ingress OAM Defect Record: sATLS_INGRESS_OAMDEFECT Field Name
rxSegmentDefectType rxEndToEndDefectType rxEndToEndDefectLoc[ATLS_IVC_AIS_DEFECT_LOCA TION_SIZE] rxSegmentAisDefectLoc[ATLS_IVC_AIS_DEFECT_LO CATION_SIZE]
Field Type
UINT1 UINT1 UINT1 UINT1
Field Description Segment AIS type. End-to-end AIS type. End-to-End AIS Location. Segment AIS Location
Ingress Configuration Record
This record collects together all the fields used to configure the VC connection in the Ingress VC table documented in the ATLAS Hardware Specification. Table 13: Ingress Configuration Record: sATLS_INGRESS_CONFIG Field Name
nni status configuration internalStatus gfr gfrState maximumFrameLength
Field Type
UINT1 UINT1 UINT2 UINT4 UINT1 UINT1 UINT2
Field Description Network-network Interface flag Ingress VC table status field Ingress VC table configuration field Ingress internal status field Guaranteed frame rate Internal gfr state Maximum Frame length
Ingress OAM Configuration Record
This record collects together all the fields used to configure the OAM support in the Ingress VC table documented in the ATLAS Hardware Specification.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
43
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Table 14: Ingress OAM Configuration Record: sATLS_INGRESS_OAMCONFIG Field Name
oamConfiguration vpcPointer f4ToF5AIS
Field Type
UINT2 UINT2 UINT1
Field Description Ingress VC table OAM configuration field VPC pointer F4 to F5 AIS generation control
Ingress Policing Record
This record collects together all the fields used to configure the Policing parameters in the Ingress VC table documented in the ATLAS Hardware Specification. Table 15: Ingress Policing Record: sATLS_INGRESS_POLICING Field Name
policeConfiguration phyPolice cLPccEn cocup tat2 tat1 action2 action1 i2 l2 i1 l1 violate
Field Type
UINT2 UINT1 UINT1 UINT1 UINT4 UINT4 UINT1 UINT1 UINT2 UINT2 UINT2 UINT2 UINT1
Field Description Policing Configuration PHY Policing ON/OFF CLP Conformance Check enable Conditional Conformance update Theoretical Arrival Time 2 Theoretical Arrival Time 1 Action of non-conforming GCRA2 Action of non-conforming GCRA1 Increment 2 Limit 2 Increment 1 Limit 1 Tag all cells as violating
Ingress Counts Record
This record collects together all the fields used to read the Counts parameters in the Ingress VC table documented in the ATLAS Hardware Specification.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
44
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Table 16: Ingress Counts Record: sATLS_INGRESS_COUNTS Field Name
nonCompliant3 nonCompliant2 nonCompliant1 ingressCellCount2 ingressCellCount1 alternateIngressCellCount2 alternateIngressCellCount1 remainingFrameCount
Field Type
UINT2 UINT2 UINT2 UINT4 UINT4 UINT4 UINT4 UINT2
Field Description Non-Compliant cell count 3 Non-Compliant cell count 2 Non-Compliant cell count 1 Ingress Cell Count 2 Ingress Cell Count 1 Alternate Ingress Cell Counter 2 Alternate Ingress Cell Counter 1 Remaining Frame count
Ingress PM Record
This record collects together all the fields used to configure the PM support in the Ingress VC table documented in the ATLAS Hardware Specification. Table 17: Ingress PM Record: sATLS_INGRESS_PM Field Name
pmActive2 pmAddr2 pmActive1 pmAddr1
Field Type
UINT1 UINT1 UINT1 UINT1
Field Description PM2 on/off flag PM2 Session Address PM1 on/off flag PM1 Session Address
Ingress Translation Record
This record collects together all the fields used to configure the Translation parameters in the Ingress VC table documented in the ATLAS Hardware Specification. Table 18 : Ingress Translation Record: sATLS_INGRESS_TRANSLATION Field Name
header[ATLS_IVC_HEADER_SIZE] udf
Field Type
UINT1 UINT1
Field Description New cell header for Translation User defined field
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
45
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
prePo1 prePo2 prePo3 prePo4 prePo5 prePo6 prePo7 prePo8 prePo9 prePo10
Field Type
UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1
Field Description Prepend/PostPend 1 Prepend/PostPend 2 Prepend/PostPend 3 Prepend/PostPend 4 Prepend/PostPend 5 Prepend/PostPend 6 Prepend/PostPend 7 Prepend/PostPend 8 Prepend/PostPend 9 Prepend/PostPend 10
Ingress Key Record
This record collects together all the fields used to configure the search Key parameters in the Ingress VC table documented in the ATLAS Hardware Specification. Table 19: Ingress Key Record: sATLS_INGRESS_KEY Field Name
fieldA phyId fieldB vpi vci
Field Type
UINT2 UINT1 UINT2 UINT2 UINT2
Field Description Field A PHY ID Field B Virtual Path Identifier Virtual Connection Identifier
Egress Record Type
This record is as documented in the ATLAS hardware specification.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
46
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Table 20: Egress Record Type: sATLS_EGRESS_RECORD Field Name
fieldA fieldB active pmActive2 pmActive1 nni vpi vci reserved cosEnable vpcPointer pmAddr2 pmAddr1 status internalStatus oamConfiguration rxEndToEndAisDefectType rxSegmentAisDefectType configuration phyId egressCellCount1 egressCellCount2 alternateEgressCellCount1 alternateEgressCellCount2 rxEndToEndAisDefectLoc [AIS_DEFECT_LOCATION_SIZE] rxSegmentToEndAisDefectLoc [AIS_DEFECT_LOCATION_SIZE]
Field Type
UINT2 UINT2 UINT1 UINT1 UINT1 UINT1 UINT2 UINT2 UINT1 UINT1 UINT2 UINT1 UINT1 UINT1 UINT2 UINT2 UINT1 UINT1 UINT2 UINT1 UINT4 UINT4 UINT4 UINT4 UINT1 UINT1
Field Description Field A, used as Search Key only, not part of the VCRecord. Field B, used as Search Key only, not part of the VCRecord. Active Record PM session 1 PM session 2 network identifier virtual path identifier virtual channel identifier Unused Enable Change of State indications channel pointer PM session address PM session address Egress VC Status field Egress Internal Status field OAM Configuration Field End to End AIS defect type Segment AIS defect type Egress Configuration Field PHY ID number egress cell count egress cell count egress cell alternate count egress cell alternate count End to End AIS location Segment AIS location
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
47
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Egress OAM Defect Record
This record collects together all the fields used to configure the OAM defect support in the Egress VC table documented in the ATLAS Hardware Specification. Table 21: Egress OAM Defect Record: sATLS_EGRESS_OAMDEFECT Field Name
rxSegmentDefectType rxEndToEndDefectType rxEndToEndDefectLoc[ATLS_IVC_AIS_DEF ECT_LOCATION_SIZE] rxSegmentAisDefectLoc[ATLS_IVC_AIS_D EFECT_LOCATION_SIZE]
Field Type
UINT1 UINT1 UINT1 UINT1
Field Description Segment AIS Defect type End-to-end AIS Defect type End-to-End AIS Location Segment AIS Location
Egress Configuration Record
This record collects together all the fields used to configure the VC connection in the Egress VC table documented in the ATLAS Hardware Specification. Table 22: Egress Configuration Record: sATLS_EGRESS_CONFIG Field Name
active nni status configuration internalStatus cosEnable
Field Type
UINT1 UINT1 UINT1 UINT2 UINT2 UINT1
Field Description Connection activation on/off Network-network Identifier Egress VC table status field Egress VC table configuration field Egress internal status field Change of state on/off
Egress OAM Configuration Record
This record collects together all the fields used to configure the OAM support in the Egress VC table documented in the ATLAS Hardware Specification.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
48
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Table 23: Egress OAM Configuration Record: sATLS_EGRESS_OAMCONFIG Field Name
oamConfiguration
Field Type
UINT2
Field Description Egress VC table OAM configuration field
Egress Counts Record
This record collects together all the fields used to read the Counts parameters in the Egress VC table documented in the ATLAS Hardware Specification. Table 24: Egress Counts Record: sATLS_EGRESS_COUNTS Field Name
egressCellCount1 egressCellCount2 alternateEgressCellCount1 alternateEgressCellCount2
Field Type
UINT4 UINT4 UINT4 UINT4
Field Description Egress Cell Count 1 Egress Cell Count 2 Alternate Egress Cell Count 1 Alternate Egress Cell Count 2
Egress PM Record
This record collects together all the fields used to configure the PM support in the Egress VC table documented in the ATLAS Hardware Specification. Table 25: Egress PM Record: sATLS_EGRESS_PM Field Name
pmActive2 pmAddr2 pmActive1 pmAddr1
Field Type
UINT1 UINT1 UINT1 UINT1
Field Description PM2 on/off flag PM2 Session Address PM1 on/off flag PM1 Session Address
Egress Key Record
This record collects together all the fields used to configure the Key parameters in the Egress VC table documented in the ATLAS Hardware Specification.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
49
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Table 26: Egress Key Record: sATLS_EGRESS_KEY Field Name
fieldA phyId fieldB vpi vci
Field Type
UINT2 UINT1 UINT2 UINT2 UINT2
Field Description Field A PHY ID Field B Virtual Path Identifier Virtual Connection Identifier
Performance Monitoring
This structure contains the configuration and statistical information for a Performance Monitoring session. Table 27: Performance Monitoring Record: sATLS_PM_RECORD Field Name
configStatus bip16 currCellCountCLP0 currCellCountCLP0_1 blerStored fwdBMCSN fwdTRCC0 fwdTRCC0_1 fwdTUC0 fwdTUC0_1 fwdFMCSN unused1 bwdTRCC0 bwdTRCC0_1
Field Type
UINT2 UINT2 UINT2 UINT2 UINT1 UINT1 UINT2 UINT2 UINT2 UINT2 UINT1 UINT1 UINT2 UINT2
Field Description Configuration and status bits for this PM record. Bit interleaved parity 16 Current count of CLP0 cells Current count of CLP0+1 cells Stored Block Error Result Forward BR Monitoring Cell Sequence Number Forward Total Received CLP0 Cell Count Forward Total Received CLP0+1 Cell Count Forward Total CLP0 User Cell Count Forward Total CLP0+1 User Cell Count Forward FM Cell Sequence Number Unused Backward Total Received CLP0 Cell Count Backward Total Received CLP0+1 Cell Count
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
50
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
bwdTUC0 bwdTUC0_1 bwdFMCSN bwdBMCSN fwdErrors fwdImpaired fwdLostOrImpaired fwdSECBErrored fwdSECBLost fwdSECBMisins fwdSECBC fwdLostFMCells fwdTaggedCLP0 fwdMisinserted fwdLostCLP0 fwdLostCLP0_1 fwdTotalLostCLP0 fwdTotalLostCLP0_1 bwdErrors bwdImpaired bwdLostOrImpaired bwdSECBErrored bwdSECBLost bwdSECBMisins bwdSECBC bwdSECBCAccum bwdTaggedCLP0 bwdMisinserted bwdLostCLP0
Field Type
UINT2 UINT2 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT1 UINT2 UINT2 UINT2
Field Description Backward Total CLP0 User Cell Count Backward Total CLP0+1 User Cell Count Backward FM Cell Sequence Number Backward BR Monitoring Cell Sequence Number Forward Error Cell Count Forward Impaired Block Count Forward Lost or Impaired Block Count Forward SECB Errored count Forward SECB Lost count Forward SECB misinserted count Forward SECB Combined count Forward Lost FM Cell count Forward Tagged CLP0 count Forward Misinserted cell count Forward Lost CLP0 cell count Forward Lost CLP0+1 cell count Total Forward Lost CLP0 cells for this PM session Total Forward Lost CLP0+1 cells for this PM session Backward Error Cell Count Backward Impaired Block Count Backward Lost or Impaired Block Count Backward SECB Errored count Backward SECB Lost count Backward SECB misinserted count Backward SECB Combined count Backward Accumulating SECBC count Backward Tagged CLP0 count Backward Misinserted cell count Backward Lost CLP0 cell count
51
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
bwdLostCLP0_1 bwdTotalLostCLP0 bwdTotalLostCLP0_1 txedCLP0Count txedCLP0_1Count bwdLostBRCells bwdLostFMCells
Field Type
UINT2 UINT2 UINT2 UINT4 UINT4 UINT1 UINT1
Field Description Backward Lost CLP0+1 cell count Total Backward Lost CLP0 cells for this PM session Total Backward Lost CLP0+1 cells for this PM session Transmitted CLP0 user cell count Transmitted CLP0+1 user cell count Backward Lost BR cells Backward Lost FM cells
Microprocessor Cell Interface
This structure contains the parameters needed to control cell insertion at the microprocessor interface. Table 28: Microprocessor Cell Interface Insert Control: sATLS_CELL_INS_CTRL Field Name
length crc
Field Type
UINT1 UINT1
Field Description Only hexadecimal value between 0x02 and 0x07 are valid and represent cell lengths of 27-32 words respectively. Non-zero: forces generation of CRC10 in the last word of the payload. Zero: last word of the payload is not overwritten. Non-zero - header translation is enabled. Zero - header translation is disabled. Identifies the output PHY device
uphdrx phyId
UINT1 UINT1
Per-PHY Policing
This structure contains the configuration and status information for per-PHY policing. Table 29: Per-PHY Policing: sATLS_PER_PHY_POLICING Field Name FieldType Field Description
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
52
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
phyTAT phyI phyL phyNonCompliant2 phyNonCompliant1 phyVCCount
FieldType
UINT4 UINT2 UINT2 UINT2 UINT2 UINT1
Field Description Theoretical Arrival Time for the PHY interface PHY Increment field PHY Limit field PHY Non-compliant count 2 PHY Non-compliant count 1 Determines (non-zero value) whether cells which are non-compliant with the per-VC policer are counted in the per-PHY non-compliant cell counts and vice versa Selects one of four possible police configurations Selects one of four possible police actions for non-conforming cells PHY Non-compliant count 3
phyPoliceConfig phyAction phyNonCompliant3
UINT1 UINT1 UINT2
Statistics Information
The ATLAS device maintains the following sets of device statistics. These statistics can only be referenced as the full set. The following VC and PM Statistics are covered in Section 4. * * * * * * Aggregate Cells Ingress Interface Physical Cells Ingress Interface input/output Cells Egress Interface input/output Cells Ingress Per-PHY Counts [32] Egress Per-PHY Counts [32]
Device Statistics information is returned to the application in the following structures. Table 30: Atlas Statistics: sATLS_AGGR_COUNTS Field Name
ingPhysCellCount ingInCellCount
Field Type
UINT1 UINT4
Field Description Physical Layer Cells erroneously arriving at the ATLAS Ingress Input Cells
53
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
ingOutCellCount egInCellCount egOutCellCount ingPerPhyCounters[32] egPerPhyCounters[32]
UINT4 UINT4 UINT4
Ingress Output Cells Egress Input Cells Egress Output Cells
sATLS_I_PERPHY_COUNTERS 32 Per-Phy Ingress Counter sets sATLS_E_PERPHY_COUNTERS 32 Per-Phy Egress Counter sets
The following structure describes a single set of Ingress Per-PHY statistics. There will be 32 versions of these. Table 31: Ingress Per-PHY Statistics: sATLS_I_PERPHY_COUNTERS Field Name
ingPhyCLP0Count ingPhyCLP1Count ingPhyOAMCount ingPhyRMCount ingPhyOAMRMErrorCount ingPhyInvVpiVciPtiCount ingPhyNonZeroGFCCount ingPhyLastUnknownVpi ingPhyLastUnknownVci
Field Type
UINT4 UINT4 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2 UINT2
Field Description CLP0 Cell Count CLP1 Cell Count Valid OAM Cell Count Valid RM Cell Count Errored OAM/RM Cell Count Invalid VPI/VCI/PTI Cell count Non-Zero GFC Cell Count Last Unknown VPI on this PHY Last Unknown VCI on this PHY
The following structure describes a single set of Egress Per-PHY statistics. There will be 32 versions of these. Table 32: Egress Per-PHY Statistics: sATLS_E_PERPHY_COUNTERS Field Name
egPhyCLP0Count egPhyCLP1Count egPhyOAMCount egPhyRMCount egPhyOAMRMErrorCount
Field Type
UINT4 UINT4 UINT2 UINT2 UINT2
Field Description CLP0 Cell Count CLP1 Cell Count Valid OAM Cell Count Valid RM Cell Count Errored OAM/RM Cell Count
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
54
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
egPhyInvVciPtiCount
Field Type
UINT2
Field Description Invalid VCI/PTI Cell count
Driver Ingress VC Table Data Structures
The driver maintains its own copy of the information that allows it to perform all access operations on the Ingress VC Table without excessive reads of the Atlas registers. It keeps a mirror copy of: * * * * * The primary table The secondary table A list of unused secondary table records A list of free record addresses A list of all the secondary keys
Each of the above items in the list are kept on a per device basis. They are located in the Device Data Block. These constitute a mirror copy of the Ingress VC Tree structures and the Egress Vector. The contents of each VC record are not maintained. Ingress VC Primary Table (ivcPrimaryTable) The ivcPrimaryTable is an array of secondary root node addresses. The ivcPrimaryTable is a mirror copy of the VC Primary Table in the Ingress SRAM. The driver allocates this array when atlasAdd is called; it contains ingressMaxVCs elements. The root node addresses are 16 bits wide to cater for up to 65536 root nodes. The root node is the top node of a binary tree of secondary keys. Ingress VC Secondary Table (ivcSecondaryTable) The ivcSecondaryTable is an array of sATLS_NODE_TYPEs. The ivcSecondaryTable is a mirror copy of the secondary table elements of the Ingress VC Table Row0 (ISA[19:16]=0000). The driver allocates this array when atlasAdd is called; it contains ingressMaxVCs elements. There can be up to 65536 secondary branches. The sATLS_IVC_NODE_TYPE is defined below. Table 33: Ingress Node Type: sATLS_IVC_NODE_TYPE Field Name
Selector
Field Type
UINT1
Field Description Selector used to decide direction while traversing the binary tree.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
55
S/UNI-ATLAS(PM7324) Driver Manual Data Structures
Field Name
LeftLeaf LeftBranch RightLeaf RightBranch
Field Type
UINT1 UINT2 UINT1 UINT2
Field Description 0: indicates leftBranch identifies a branch 1: indicates leftBranch identifies a leaf Identifies either a vcRecord or another branch. 0: indicates rightBranch identifies a branch 1: indicates rightBranch identifies a leaf Identifies either a vcRecord or another branch.
Ingress VC Secondary Address List (ivcSecondaryAddrList) The SRAM addresses for the Secondary Search Table entries can be assigned arbitrarily. The driver implements a stack of available Secondary Search Table entries (ivcSecondaryAddrList) and uses a stack pointer (ivcSecondaryAddrIndex) to point to the next available Secondary Search Table entry. The ivcSecondaryAddrList array contains up to 65, 536 elements. Each element is a 16-bit number that indexes into the ivcSecondaryTable array. Ingress VC Record Address Free (ivcRecordAddrFree) The SRAM addresses for the VC Table Records can be assigned arbitrarily. The driver implements an array of Boolean values which identify whether or not a VC Record is in use. The address of the VC Record is used to index into the array. The ivcRecordAddrFree array contains up to 65536 elements. Ingress VC Secondary Keys (ivcSecondaryKeys) A search on a secondary search table always yields a leaf. The only exception to this is when the tree is empty. Even though a leaf is found, it may not be the actual leaf being searched for. To verify that the leaf found matches the one sought, the secondary keys of the leaf that was found and the one sought must be compared. The driver maintains a mirror copy of the SRAM secondary keys. The address of the secondary key (which comes from the ivcSecondaryAddrList) is used to index into the array. The ivcSecondaryKeys array contains up to 65536 secondary keys. Each secondary key is a 5-byte array (enough to store the 39-bit secondary key).
User Context
The user context ATLS_USR_CTXT is defined as a void* data type.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
56
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
5
5.1
APPLICATION PROGRAMMING INTERFACE
Function Calls
This section provides a detailed description of each function that is a member of the ATLAS driver Application Programming Interface.
5.2
Driver Initialization and Shutdown
Initializing Device Drivers: atlasModuleInit
This function performs module level initialization of the device driver. This involves allocating the GDB and initializing the data-structure. Prototype Inputs Outputs Returns
INT4 atlasModuleInit(void)
None None
ATLS_SUCCESS ATLS_ERR_MEM_ALLOC ATLS_ERR_MODULE_ALREADY_INIT
Shutting Down Drivers: atlasModuleShutdown
This function performs module level shutdown of the driver. This involves deleting all devices controlled by the driver and deallocating the GDD. Prototype Inputs Outputs Returns
void atlasModuleShutdown(void)
None None None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
57
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
5.3
Hardware Access
Reading Registers: atlasReadReg
This function can be used to read a register of a specific ATLAS device by providing the register identifier. This function derives the actual address location based on the device handle and register identifier inputs. It then reads the contents of this address location using the system specific function, sysAtlasRawRead. Prototype Valid States Inputs
INT4 atlasReadReg(ATLAS atlas, UINT2 regId, UINT2 *pVal) ATLS_PRESENT atlas regId
: device handle (from atlasAdd) : register identifier : register value
Outputs Returns
pVal
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_REG_ID
Writing Registers: atlasWriteReg
This function can be used to write to a register of a specific ATLAS device by providing the register identifier. This function derives the actual address location based on the device handle and register identifier inputs. It then writes the contents of this address location using the system specific function, sysAtlasRawWrite. Prototype Valid Sates Inputs
INT4 atlasWriteReg(ATLAS atlas, UINT2 regId, UNIT2 pu2Val) ATLS_PRESENT
atlas regId pval
: device handle (from atlasAdd) : register identifier : value to be written
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
58
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_REG_ID
5.4
Device addition and deletion
Locating Devices and Allocating Memory: atlasAdd
This function calls sysAtlasDetectDevice to locate the device, allocates memory for the device data block (DDB), stores the user's context for the device, and outputs the pointer to the DDB as a handle back to the user. The device handle should be used to identify the device on which the operation is to be performed. Prototype
INT4 atlasAdd( ATLS_USR_CTXT usrCtxt, UINT4 maxIngressVCs, UINT4 maxEgressVCs, sATLS_DDB **patlasHandle) ATLS_EMPTY
Valid States Inputs
usrCtxt maxIngressVCs maxEgressVCs patlasHandle
: user context information : the maximum Number of Ingress VCs : the maximum Number of Egress VCs : device handle (to be used as an argument to most of the ATLAS APIs).
Outputs
Returns
ATLS_SUCCESS, ATLS_ERR_MOD_NOT_INIT ATLS_ERR_EXCEED_MAX_DEVS ATLS_ERR_INVALID_MAX_VCS ATLS_ERR_DEV_NOT_DETECTED ATLS_ERR_DEV_ALREADY_ADDED ATLS_ERR_MEM_ALLOC
Side Effects
Device is put in the ATLS_PRESENT state. A software reset is applied to the device.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
59
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Removing Devices: atlasDelete
This function is used to remove the specified device from the list of devices being controlled by the ATLAS driver. Deleting a device involves de-allocating the DDB for that device. It does not deallocate the user's context pointer. The user is responsible for deallocating the user's context. Once deleted, the device handle associated with this device is invalid and cannot be reused. Prototype Valid States Inputs Outputs Returns
INT4 atlasDelete(ATLAS atlas) ATLS_PRESENT
atlas
: device handle (from atlasAdd)
None
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE
Side Effects
The DDB is deallocated and the device is no longer `known' to the driver.
5.5
Device Initialization and Reset
Initializing Devices Based on Initialization Vectors: atlasInit
This function initializes the device based on an initialization vector passed by the user. This initialization vector is stored by the driver in the device's DDB. The device registers are then configured accordingly. Prototype Valid States Inputs
INT4 atlasInit(ATLAS atlas, sATLS_INIT_VECT *psInitVector) ATLS_PRESENT
atlas psInitVector
: device handle (from atlasAdd) : pointer to initialization vector that is used by the driver to program the device registers
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
60
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Outputs Returns
None ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE
Side Effects
The device is put in ATLS_INIT state.
Resetting Devices: atlasReset
This function applies a software reset to the ATLAS device; it also reinitializes all of the DDB's contents (except for the initialization vector, which is left unmodified). This function is typically called before initializing the device with a new initialization vector. Prototype Valid States
INT4 atlasReset(ATLAS atlas) ATLS_PRESENT ATLS_INIT ATLS_ACTIVE
Inputs Outputs Returns
atlas
: device handle (from atlasAdd)
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE
Side Effects
The device is put in the ATLS_PRESENT state. So the device has to be initialized after a reset.
5.6
Device Activation and Deactivation
Activating Devices: atlasActivate
This function activates the ATLAS device by preparing it for normal operation. This involves enabling device interrupts and enabling the Ingress and Egress Cell processing.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
61
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototypes Valid States Inputs Outputs Returns
INT4 atlasActivate(ATLAS atlas) ATLS_INIT
atlas
: device handle (from atlasAdd)
None
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE
Side Effects
Puts the device in ATLS_ACTIVE state.
De-activating Devices: atlasDeactivate
This function de-activates the ATLAS device and removes it from normal operation. This involves disabling device interrupts and disabling the Ingress and Egress Cell processing. Prototype Valid States Inputs Outputs Returns
INT4 atlasDeactivate(ATLAS atlas) ATLS_INIT, ATLS_ACTIVE
atlas
: device handle (from atlasAdd)
None
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE
Side Effects
Puts the device in ATLS_INIT state.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
62
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
5.7
Device Diagnostics
Verifying the Access of Microprocessors: atlasTest
This function verifies the correctness of the microprocessor's access to the device registers by writing to and reading back values; it also verifies access to VC Table SRAM, PM Internal Ram, and Per-PHY Policing RAM. Prototype Valid States Inputs Outputs Returns
INT4 atlasTest(ATLAS atlas) ATLS_PRESENT
atlas
: device handle (from atlasAdd)
None
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_SRAM_DIAG ATLS_ERR_IPMRAM_DIAG ATLS_ERR_EPMRAM_DIAG ATLS_ERR_PER_PHY_POLICE_RAM_DIAG
Side Effects
Puts the device in the ATLS_PRESENT state after the test. So the device should be re-initialized after calling this function.
5.8
Connection Management
This section defines the functions available for creating and managing connections through the ATLAS device. These functions access the Ingress/Egress VC Table registers to perform their tasks. The driver will maintain a shadow copy of the Ingress and Egress VC Table structures.
Adding Ingress Connections: atlasAddIngressConnection
This function adds an ingress connection.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
63
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototype
INT4 atlasAddIngressConnection(ATLAS atlas, sATLS_INGRESS_RECORD *patlasIngressVCRecord, UINT2*pvcId,UINT1 forceAddr) ATLS_ACTIVE
Valid Sates Inputs
atlas patlasIngressVCRecord pvcId forceAddr
: device handle (from atlasAdd) : connection information structure : pointer to VC Id to use, if forceAddr is non-zero : if zero, the Driver allocates an unused VCid. If non-zero, allocate the VC Id as specified by pvcId. when forceAddr is non-zero, the user must specify the address at which the new VC should appear. When forceAddr is zero, this field acts as an output parameter and contains the address of the new VC allocated by the driver.
Outputs
pvcId:
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_IVC_ADD_VC_EXISTS ATLS_ERR_IVC_VC_ADDR_RANGE ATLS_ERR_IVC_VC_ADDR_NONE_FREE ATLS_ERR_IVC_VC_ADDR_NOT_FREE ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE
Deleting Ingress Connections: atlasDeleteIngressConnection
This function deletes an ingress connection. Prototype
INT4 atlasDeleteIngressConnection(ATLAS atlas, sATLS_INGRESS_RECORD *patlasIngressVCRecord)
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
64
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Valid Sates Inputs
ATLS_ACTIVE
atlas patlasIngressVCRecord
: device handle (from atlasAdd) : only the fieldA, fieldB, inPhyId are used from this structure during the deletion. The structure is passed for consistency of interface.
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE
Adding Egress Connections: atlasAddEgressConnection
This function adds an egress connection. Prototype
INT4 atlasAddEgressConnection(ATLAS atlas, sATLS_EGRESS_RECORD*patlasEgressVCRecord, UINT2*pvcId) ATLS_ACTIVE
Valid Sates Inputs
atlas patlasEgressVCRecord pvcId
: device handle (from atlasAdd) : connection information structure : pointer to VC Id to use, if forceAddr is non-zero : when forceAddr is non-zero the user must specify the address at which the new VC should appear. When forceAddr is zero this field acts as an output parameter and contains the address of the new VC allocated by the driver.
Outputs
pvcId
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
65
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_ADD_RECORD_EXISTS
Adding Egress Connections: atlasAddEgressDummyConnection
Add the Egress dummy connections required for the cell insertion software workaround. For the software workaround to function correctly, there must be one dummy connection per PHY (the number of PHYs is specified by the Egress Cell Processor Direct Lookup Index Configuration #1). Prototype
INT4 atlasAddEgressDummyConnection(ATLAS atlas, sATLS_EGRESS_RECORD*patlasEgressVCRecord, UINT2*pvcId) ATLS_ACTIVE
Valid Sates Inputs
atlas patlasEgressVCRecord pvcId
: device handle (from atlasAdd) : connection information structure : pointer to VC Id to use, if forceAddr is non-zero : contains the address of the new VC allocated by the driver.
Outputs Returns
pvcId
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_ADD_RECORD_EXISTS
Deleting Egress Connections: atlasDeleteEgressConnection
This function deletes an egress connection.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
66
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototype
INT4 atlasDeleteEgressConnection(ATLAS atlas, sATLS_EGRESS_RECORD *patlasEgressVCRecord) ATLS_ACTIVE
Valid States Inputs
atlas patlasEgressVCRecord
: device handle (from atlasAdd) : only the fieldA, fieldB, inPhyId, are used from this structure during the deletion. The structure is passed for consistency of interface.
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_ADD_RECORD_NOT_EXIST
Getting Ingress VC Status: atlasGetIngressVcStatus
This function gets ingress VC status. This function returns the full contents of the following rows of the ingress VC -1,2,3,4,7,8,10,11,12,13, and 14. All other fields are undefined Prototype
INT4 atlasGetIngressVcStatus (ATLAS atlas, sATLS_INGRESS_RECORD *patlasIngressVCRecord) ATLS_ACTIVE
Valid States Inputs Outputs
atlas
: device handle (from atlasAdd) : the user must set the fieldA, fieldB, phyId, VPI, and VCI before calling this function. The driver finds the VC and fills in the other fields for the user.
patlasIngressVCRecord
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
67
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE ATLS_ERR_IVC_VC_NOT_EXIST
Getting Ingress VC Counters: atlasGetIngressVcCounts
This function gets ingress VC. This function returns the full contents of the following rows of the ingress VC-5, 6 and 9. All other fields are undefined Prototype
INT4 atlasGetIngressVcCounts (ATLAS atlas, sATLS_INGRESS_RECORD *patlasIngressVCRecord) ATLS_ACTIVE
Valid States Inputs Outputs
atlas
: device handle (from atlasAdd) : the user must set the fieldA, fieldB, phyId, VPI, and VCI before calling this function.The driver finds the VC and fills in the other fields for the user.
patlasIngressVCRecord
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE ATLS_ERR_IVC_VC_NOT_EXIST
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
68
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Getting Ingress VC Counters: atlasReadIngressCounts
This function gets ingress VC counters only. This function returns the full contents of the following rows of the ingress VC-5, 6 and 9. All other fields are undefined. Prototype
INT4 atlasReadIngressCounts ( ATLAS atlas,UINT2 u2VcId,UINT1 clearOnRead,sATLS_INGRESS_COUNTS *pCounts) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId clearOnRead
: device handle (from atlasAdd) : index to the VC table record : reset the counts if clearOnRead = 1, otherwise don't clear it. : connection information structure
Outputs Returns
pcounts
ATLS_SUCCESS ATLS_ERR_MOD_NOT_INIT ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT
Enabling Ingress VC : atlasEnableIngressVC
This function enables an existing ingress VC connection. It modifies the Active bit in the configuration field of row 2 in the VC table. Prototype Valid States Inputs
INT4 atlasEnableIngressVC(ATLAS atlas, UINT2 u2VcId) ATLS_INIT, ATLS_ACTIVE
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record.
Outputs
None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
69
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT
Disabling Ingress VC : atlasDisableIngressVC
This function disables an existing ingress VC connection. It modifies the Active bit in the configuration field of row 2 in the VC table. Prototype Valid States Inputs
INT4 atlasEnableIngressVC(ATLAS atlas, UINT2 u2VcId) ATLS_INIT, ATLS_ACTIVE
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT
Getting Full Ingress VC Records: atlasGetIngressVc
This function gets the full ingress VC record. This is the equivalent of getting both the Status and Counts. Prototype
INT4 atlasGetIngressVc (ATLAS atlas, sATLS_INGRESS_RECORD *patlasIngressVCRecord) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas
: device handle (from atlasAdd)
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
70
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Outputs
patlasIngressVCRecord
: the user must set the fieldA, fieldB, phyId, VPI, and VCI before calling this function.The driver finds the VC and fills in the other fields for the user.
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE ATLS_ERR_IVC_VC_NOT_EXIST
Getting Egress VC Status: atlasGetEgressVcStatus
This function gets Egress VC status; it returns the full contents of the following rows of the Egress VC-0, 1, 2,3,8,9,10,11,12,13,14 and 15. All other fields are undefined. Prototype
INT4 atlasGetEgressVcStatus (ATLAS atlas,sATLS_EGRESS_RECORD *patlasEgressVCRecord) ATLS_ACTIVE
Valid States Inputs Outputs
atlas
: device handle (from atlasAdd) : the user must set the fieldA, fieldB, and phyId before calling this function. The driver finds the VC and fills in the other fields for the user.
patlasEgressVCRecord
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_RECORD_NOT_EXIST
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
71
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Getting Ingress VC Counters: atlasGetEgressVcCounts
This function gets Egress VC Counters. This function returns the full contents of the following rows of the Egress VC-4,5,6, and 7. All other fields are undefined. Prototype
INT4 atlasGetEgressVcStatus (ATLAS atlas, sATLS_EGRESS_RECORD *patlasEgressVCRecord) ATLS_ACTIVE
Valid States Inputs Outputs
atlas
: device handle (from atlasAdd) : the user must set the fieldA, fieldB, and phyId before calling this function. The driver finds the VC and fills in the other fields for the user.
patlasEgressVCRecord
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_RECORD_NOT_EXIST
Getting Egress VC Counters: atlasReadEgressCounts
This function gets Egress VC Counters. This function returns the full contents of the following rows of the Egress VC-4,5,6, and 7. All other fields are undefined Prototype
INT4 atlasReadEgressVC(ATLAS atlas, UINT2 u2VcId, UINT1 clearOnRead, sATLS_EGRESS_COUNTS *pCounts) ATLS_INIT, ATLS_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
72
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs
atlas u2VcId clearOnRead
: device handle (from atlasAdd) : index to the VC table record. : Reset the counts if clearOnRead = 1, otherwise don't clear it. : connection information structure.
Outputs Returns
pCounts ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Enabling Egress VC : atlasEnableEgressVC
This function enables an existing Egress VC connection. It modifies the Active bit of row 2 in the Egress VC table. Prototype Valid States Inputs
INT4 atlasEnableEgressVC(ATLAS atlas, UINT2 u2VcId) ATLS_INIT, ATLS_ACTIVE
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT
Disabling Egress VC : atlasDisableEgressVC
This function disables an existing egress VC connection. It modifies the Active bit of row 2 in the Egress VC table.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
73
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototype Valid States Inputs
INT4 atlasEnableEgressVC(ATLAS atlas, UINT2 u2VcId) ATLS_INIT, ATLS_ACTIVE
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT
Getting Full Egress VC Records: atlasGetEgressVc
This function gets the full Egress VC record. This is the equivalent of getting both the Status and Counts. Prototype
INT4 atlasGetEgressVcStatus (ATLAS atlas, sATLS_EGRESS_RECORD *patlasEgressVCRecord) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs Outputs
atlas
: device handle (from atlasAdd) : the user must set the fieldA, fieldB, and phyId before calling this function. The driver finds the VC and fills in the other fields for the user.
patlasEgressVCRecord
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
74
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_RECORD_NOT_EXIST
Getting Ingress VC Key: atlasReadIngressKey
This function gets the Ingress VC Key parameters; it returns the following VC ingress table fields: Row 1 : fieldA, fieldB, phyId, vci, vpi. Prototype
INT4 atlasReadIngressKey(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_KEY *pKey) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : translation information structure.
Outputs Returns
pKey ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Ingress VC Key: atlasWriteIngressKey
This function modifies the Ingress VC Key parameters; the following VC ingress table fields are updated: Row 1 : fieldB, phyId, vci, vpi. Prototype
INT4 atlasWriteIngressKey(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_KEY *pKey)
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
75
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Valid States Inputs
ATLS_INIT, ATLS_ACTIVE
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : translation information structure.
Outputs Returns
pKey ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Getting Ingress VC Configuration: atlasReadIngressConfig
This function gets Ingress VC Configuration. This function returns the following VC ingress table fields : Row 1 : NNI Row 2 : status, internal Status, configuration Row 4 : gfr Row 5 : gfr state Row 10 : maximum Frame Length Prototype
INT4 atlasReadIngressConfig(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_CONFIG *pConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : configuration information structure.
Outputs Returns
pConfig ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
76
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Modifying Ingress VC configuration: atlasWriteIngressConfig
This function modifies the Ingress VC Configuration of an existing connection; the following VC ingress table fields are updated : Row 1 : NNI Row 2 : status, internal Status, configuration Row 4 : gfr Row 5 : gfr state Row 10 : maximum Frame Length. Prototype
INT4 atlasWriteIngressConfig(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_CONFIG *pConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId pConfig
: device handle (from atlasAdd) : index to the VC table record. : configuration information structure.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Connection Configurations: atlasModifyIngressVcConfiguration
This function modifies the configuration of an existing connection. Only configuration information is updated. All other fields are ignored. Confguration information is contained in: Row 1: F4toF5AIS, PMActive2, Pmaddr2, PNActive1, Pmaddr1, NNI Row 2: Configuration, OAM Configuration, and VPC Pointer Row 10: MaximumFramelength
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
77
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototype
INT4 atlasModifyIngressVcConfiguration (ATLAS atlas, sATLS_INGRESS_RECORD *patlasIngressVCRecord) ATLS_ACTIVE
Valid States Inputs
atlas patlasIngressVCRecord None
: device handle (from atlasAdd) : connection information structure
Outputs Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE ATLS_ERR_IVC_VC_NOT_EXIST
Getting Ingress VC Policing Configuration: atlasReadIngressPolicing
This function gets Ingress VC Policing configuration. This function returns the following VC ingress table fields : Row 1 : CLP CC enable Row 3 : Cocup, tat2, tat1 Row 4 : action2, action1, i2, l2, i1, l1 Row 5 : phy Police, violate. Prototype
INT4 atlasReadIngressPolicing(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_POLICING *pPolicing) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : policing information structure.
Outputs
pPolicing
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
78
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Ingress VC Policing Configuration: atlasWriteIngressPolicing
This function modifies Ingress VC Policing configuration; the following VC ingress table fields are updated : Row 1 : CLP CC enable Row 3 : Cocup, tat2, tat1 Row 4 : action2, action1, i2, l2, i1, l1 Row 5 : phy Police, violate. Prototype
INT4 atlasWriteIngressPolicing(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_POLICING *pPolicing) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : policing information structure.
pPolicing Outputs Returns None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Policing Parameters: atlasModifyIngressVcPolicing
This function modifies the policing parameters of an existing connection. Only policing parameters are updated. All other fields are ignored. Policing information is contained in:
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
79
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Row 1: cLPccEn Row 3: Cocup Row 4: PoliceConfiguration, Actio2, Action1 Row 5: PhyPolice, violate Prototype
INT4 atlasModifyIngressVcPolicing (ATLAS atlas, sATLS_INGRESS_RECORD *patlasIngressVCRecord) ATLS_ACTIVE
Valid States Inputs Returns
atlas patlasIngressVCRecord
: device handle (from atlasAdd) : connection information structure
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE ATLS_ERR_IVC_VC_NOT_EXIST
Getting Ingress VC Translation Configuration: atlasReadIngressTranslation
This function gets the Ingress VC translation configuration. This function returns the following VC ingress table fields : Row 7 : Header, UDF, prepo1, prepo2 Row 8 : prepo3 to prepo10. Prototype
INT4 atlasReadIngressTranslation(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_TRANSLATION *pTranslation) ATLS_INIT,ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : translation information structure.
Outputs
pTranslation
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
80
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Ingress VC Translation Configuration: atlasWriteIngressTranslation
This function modifies the Ingress VC translation configuration; the following VC ingress table fields are updated : Row 7 : Header, UDF, prepo1, prepo2 Row 8 : prepo3 to prepo10. Prototype
INT4 atlasWriteIngressTranslation(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_TRANSLATION *pTranslation) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId pTranslation
: device handle (from atlasAdd) : index to the VC table record. : translation information structure.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Translation Parameters: atlasModifyIngressVcTranslation
This function modifies the Translation parameters of an existing connection. Only translation parameters are updated. All other fields are ignored. Row 7: Header, udf, PrePo1, prePo2 Row 8: PrePo3, prePo4, PrePo5, prePo6, PrePo7, prePo8, PrePo9, prePo10
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
81
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototype
INT4 atlasModifyIngressVcTranslation (ATLAS atlas,sATLS_INGRESS_RECORD *patlasIngressVCRecord) ATLS_ACTIVE
Valid States Inputs
atlas patlasIngressVCRecord
: device handle (from atlasAdd) : connection information structure
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE ATLS_ERR_IVC_VC_NOT_EXIST
Modifying Configurations, Policings, and Translations: atlasModifyIngressVcConfiguration
This is equivalent to issuing a Modify Configuration, Policing, and Translation. All fields that would be updated by those functions will be updated by this function. Prototype
INT4 atlasModifyIngressVcConfiguration (ATLAS atlas,sATLS_INGRESS_RECORD *patlasIngressVCRecord) ATLS_ACTIVE
Valid States Inputs
atlas patlasIngressVCRecord
: device handle (from atlasAdd) : connection information structure
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE ATLS_ERR_IVC_VC_NOT_EXIST
82
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Getting Ingress VC OAM Configuration: atlasReadIngressOAMConfig
This function gets the Ingress VC OAM configuration. This function returns the following VC ingress table fields : Row 1 : f4ToF5Ais. Row 2 : OAM configuration, vpcPointer Prototype
INT4 atlasReadIngressOAMConfig(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_OAMCONFIG *pOamConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : OAM config information structure.
Outputs Returns
pOamConfig ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Ingress VC OAM Configuration: atlasWriteIngressOAMConfig
This function modifies the Ingress VC OAM configuration; the following VC ingress table fields are updated: Row 1 : f4ToF5Ais Row 2 : OAM configuration, vpcPointer Prototype
INT4 atlasWriteIngressOAMConfig(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_OAMCONFIG *pOamConfig) ATLS_INIT, ATLS_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
83
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs
atlas u2VcId pOamConfig
: device handle (from atlasAdd) : index to the VC table record. : OAM config information structure.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Ingress VC VPC Pointer: atlasWriteIngressVpcPointer
This function modifies the Ingress VC VPC pointer field in row 2. Prototype
INT4 atlasWriteIngressVpcPointer(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_OAMCONFIG *pOamConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId pOamConfig
: device handle (from atlasAdd) : index to the VC table record. : OAM config information structure.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
84
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Getting Ingress VC OAM Defect: atlasReadIngressOAMDefect This function gets the Ingress VC OAM Defect configuration; it returns the contents of row 11 to row 14. Prototype
INT4 atlasReadIngressOAMDefect(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_OAMDEFECT *pOamDefect) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : OAM defect config information structure
Outputs
pOamDefect
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Activating/Deactivating Ingress VC CC support: atlasWriteIngressCCActivation
This function modifies the Ingress VC CC OAM support configuration. The contents of OAM configuration field in row 2 is updated. Prototype
INT4 atlasWriteIngressCCActivation(ATLAS atlas, UINT2 u2VcId, UINT1 segment, UINT1 endToEnd) ATLS_INIT, ATLS_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
85
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs
atlas u2VcId segment
: device handle (from atlasAdd) : index to the VC table record. : Segment activation flag (1 = activate 0 = deactivate). : Segment activation flag (1 = activate, 0 = deactivate).
endToEnd
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Activating/Deactivating Ingress VC AIS support: atlasWriteIngressAISActivation
This function modifies the Ingress VC AIS OAM support configuration. The contents of OAM configuration feld in row 2 is updated. Prototype
INT4 atlasWriteIngressAISActivation(ATLAS atlas, UINT2 u2VcId, UINT1 segment, UINT1 endToEnd) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId segment endToEnd
: device handle (from atlasAdd) : index to the VC table record. : Segment activation flag (1 = activate 0 = deactivate). : Segment activation flag (1 = activate, 0 = deactivate).
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
86
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Activating/Deactivating Ingress VC RDI support: atlasWriteIngressRDIActivation
This function modifies the Ingress VC RDI OAM support configuration. The contents of OAM configuration field in row 2 is updated. Prototype
INT4 atlasWriteIngressRDIActivation(ATLAS atlas, UINT2 u2VcId, UINT1 segment, UINT1 endToEnd) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId segment endToEnd
: device handle (from atlasAdd) : index to the VC table record. : Segment activation flag (1 = activate 0 = deactivate). : Segment activation flag (1 = activate, 0 = deactivate).
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Existing Connections: atlasModifyEgressVc
This function modifies an existing connection. Only configuration information is updated. All other fields are ignored. Row 0: Active, pmActive2, pmactive, nni Row 1: CosEnable, vpcPointer, pmAddr2, pmAddr1 Row 2: OamConfiguration Row 3: Configuration Prototype
INT4 atlasModifyEgressVcConfiguration (ATLAS atlas, sATLS_EGRESS_RECORD *patlasEgressVCRecord)
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
87
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Valid States Inputs
ATLS_ACTIVE
atlas patlasEgressVCRecord
: device handle (from atlasAdd) : connection information structure
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_RECORD_NOT_EXIST
Modifying PHY Id Fields: atlasModifyEgressVcPhyId
This function modifies just the PHY Id field of the VC Record. Prototype
INT4 atlasModifyEgressVcConfiguration (ATLAS atlas,sATLS_EGRESS_RECORD *patlasEgressVCRecord, UINT1 newPhyId) ATLS_ACTIVE
Valid States Inputs
atlas patlasEgressVCRecord
: device handle (from atlasAdd) : connection information structure newPhyId: new PHY ID
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_RECORD_NOT_EXIST
Modifying VP/VCI Fields: atlasModifyEgressVcVpiVci
This function modifies just the VPI and VCI field of the VC Record.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
88
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototype
INT4 atlasModifyEgressVcConfiguration (ATLAS atlas,sATLS_EGRESS_RECORD *patlasEgressVCRecord, UINT2 newVpi, UINT2 newVci) ATLS_ACTIVE
Valid States Inputs
atlas patlasEgressVCRecord newVci newVpi
: device handle (from atlasAdd) : connection information structure : new VCI : new VPI
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_RECORD_NOT_EXIST
Getting Egress VC Configuration: atlasReadEgressConfig
This function gets Egress VC Configuration. This function returns the following VC egress table fields: Row 0 : Active, NNI Row 1 : Cos enable. Row 2 : status, internal Status Row 3 : configuration Prototype
INT4 atlasReadEgressConfig(ATLAS atlas, UINT2 u2VcId, sATLS_EGRESS_CONFIG *pConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : configuration information structure.
Outputs
pConfig
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
89
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Egress VC Configuration: atlasWriteEgressConfig
This function modifies the Egress VC Configuration of an existing connection; the following VC Egress table fields are updated: Row 0 : Active, NNI Row 1 : Cos enable Row 2 : status, internal Status Row 3 : configuration Prototype
INT4 atlasWriteEgressConfig(ATLAS atlas, UINT2 u2VcId, sATLS_EGRESS_CONFIG *pConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId pConfig
: device handle (from atlasAdd) : index to the VC table record. : configuration information structure.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Getting Egress VC OAM Configuration: atlasReadEgressOAMConfig
This function gets the Egress VC OAM configuration. This function returns the following VC egress table field : Row 2 : OAM configuration.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
90
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototype
INT4 atlasReadEgressOAMConfig(ATLAS atlas, UINT2 u2VcId, sATLS_EGRESS_OAMCONFIG *pOamConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : OAM config information structure.
Outputs Returns
pOamConfig ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Egress VC OAM Configuration: atlasWriteEgressOAMConfig
This function modifies the Egress VC OAM configuration; the following VC egress table field is updated: Row 2 : OAM configuration Prototype
INT4 atlasWriteEgressOAMConfig(ATLAS atlas, UINT2 u2VcId, sATLS_EGRESS_OAMCONFIG *pOamConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId pOamConfig
: device handle (from atlasAdd) : index to the VC table record. : OAM config information structure.
Outputs
None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
91
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Getting Egress VC OAM Defect: atlasReadEgressOAMDefect
This function gets the Egress VC OAM Defect configuration; it returns The contents of row 8 to row 15. Prototype
INT4 atlasReadEgressOAMDefect(ATLAS atlas, UINT2 u2VcId, sATLS_EGRESS_OAMDEFECT *pOamDefect) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : OAM defect config information structure
Outputs
pOamDefect
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Egress VC OAM Defect: atlasWriteEgressOAMDefect
This function modifies the Egress VC OAM Defect configuration. The contents of row 8 to row 15 is updated. Prototype
INT4 atlasWriteEgressOAMDefect(ATLAS atlas, UINT2 u2VcId, sATLS_EGRESS_OAMDEFECT *pOamDefect) ATLS_INIT, ATLS_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
92
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs
atlas u2VcId pOamDefect
: device handle (from atlasAdd) : index to the VC table record. : OAM defect config information structure
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Egress VC VPC Pointer: atlasWriteEgressVpcPointer
This function modifies the Egress VC VPC pointer field in row 1. Prototype
INT4 atlasWriteEgressVpcPointer(ATLAS atlas, UINT2 u2VcId, UINT2 u2Vpc) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId u2Vpc
: device handle (from atlasAdd) : index to the VC table record. : VPC pointer value to be written in the egress VC table.
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
93
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Activating/Deactivating Egress VC CC support: atlasWriteEgressCCActivation
This function modifies the Egress VC CC OAM support configuration. The contents of OAM configuration in row 2 is updated. Prototype
INT4 atlasWriteEgressCCActivation(ATLAS atlas, UINT2 u2VcId, UINT1 segment, UINT1 endToEnd) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId segment endToEnd
: device handle (from atlasAdd) : index to the VC table record. : Segment activation flag (1 = activate 0 = deactivate). : Segment activation flag (1 = activate, 0 = deactivate).
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Activating/Deactivating Egress VC AIS support: atlasWriteEgressAISActivation
This function modifies the Egress VC AIS OAM support configuration. The contents of OAM configuration field in rowe 2 is updated. Prototype
INT4 atlasWriteEgressAISActivation(ATLAS atlas, UINT2 u2VcId, UINT1 segment, UINT1 endToEnd) ATLS_INIT, ATLS_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
94
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs
atlas u2VcId segment endToEnd
: device handle (from atlasAdd) : index to the VC table record. : Segment activation flag (1 = activate 0 = deactivate). : Segment activation flag (1 = activate, 0 = deactivate).
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Activating/Deactivating Egress VC RDI support: atlasWriteEgressRDIActivation
This function modifies the Egress VC RDI OAM support configuration. The contents of OAM configuration field in row 2 is updated. Prototype
INT4 atlasWriteEgressRDIActivation(ATLAS atlas, UINT2 u2VcId, UINT1 segment, UINT1 endToEnd) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId segment endToEnd
: device handle (from atlasAdd) : index to the VC table record. : Segment activation flag (1 = activate 0 = deactivate). : Segment activation flag (1 = activate, 0 = deactivate).
Outputs
None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
95
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
5.9
Performance monitoring sessions
This section defines functions that can be used to setup and activate PM sessions.
PM Session Allocation
Performance Monitoring dynamically allocates PM Session Ids. To do this, it maintains a list of free PM Session Ids, one for each of the four Banks of PM Sessions. The driver implements four arrays of Boolean values that identify whether or not a PM Session is free. The PM Session Id is used to index into the array. The In/EgressBank1/2PMFree arrays contain 128 elements. The driver also maintains the current number of free PM Sessions and an index to the next free PM Session Id.
Allocating Free PM Record Ids: atlasGetIngressBank1PMId
This function allocates a free PM Record Id from the Ingress-Bank-1 free list. Prototype Valid States Inputs Outputs
INT4 atlasGetIngressBank1PMId (ATLAS atlas,UINT1 *pmSessionId) ATLS_ACTIVE
atlas
: device handle (from atlasAdd) : address of where to put the allocated PM Session Id
pmSessionId
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_PM_NOT_FREE
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
96
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Allocating Free PM Record Ids: atlasGetIngressBank2PMId
This function allocates a free PM Record Id from the Ingress-Bank-2 free list. Prototype Valid States Inputs Outputs
INT4 atlasGetIngressBank2PMId (ATLAS atlas,UINT1 *pmSessionId) ATLS_ACTIVE
atlas
: device handle (from atlasAdd) : address of where to put the allocated PM Session Id
pmSessionId
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_PM_NOT_FREE
Allocating Free PM Record Ids: atlasGetEgressBank1PMId
This function allocates a free PM Record Id from the Egress-Bank-1 free list. Prototype Valid States Inputs Outputs
INT4 atlasGetEgressBank1PMId (ATLAS atlas,UINT1 *pmSessionId) ATLS_ACTIVE
atlas
: device handle (from atlasAdd) : address of where to put the allocated PM Session Id
pmSessionId
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_PM_NOT_FREE
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
97
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Allocating Free PM Record Ids: atlasGetEgressBank2PMId
This function allocates a free PM Record Id from the Egress-Bank-2 free list. Prototype Valid States Inputs Outputs
INT4 atlasGetEgressBank2PMId (ATLAS atlas,UINT1 *pmSessionId) ATLS_ACTIVE
atlas
: device handle (from atlasAdd) : address of where to put the allocated PM Session Id
pmSessionId
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_PM_NOT_FREE
Freeing PM Record Ids: atlasFreeIngressBank1PMId
This function frees a PM Record Id back to the Ingress-Bank-1 free list. There is no validation that this session Id is not in use, nor that it is not already on the free list. Prototype Valid States Inputs
INT4 atlasFreeIngressBank1PMId (ATLAS atlas,UINT1 pmSessionId) ATLS_ACTIVE
atlas pmSessionId
: device handle (from atlasAdd) : Id of PM session to free
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_PM_SESSION_INDEX_RANGE
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
98
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Freeing PM Record Ids: atlasFreeIngressBank2PMId
This function frees a PM Record Id back to the Ingress-Bank-2 free list. There is no validation that this session Id is not in use, nor that it is not already on the free list. Prototype Valid States Inputs
INT4 atlasFreeIngressBank2PMId (ATLAS atlas,UINT1 pmSessionId) ATLS_ACTIVE
atlas pmSessionId
: device handle (from atlasAdd) : Id of PM session to free
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_PM_SESSION_INDEX_RANGE
Freeing PM Record Ids: atlasFreeEgressBank1PMId
This function frees a PM Record Id back to the Egress-Bank-1 free list. There is no validation that this session Id is not in use, nor that it is not already on the free list. Prototype Valid States Inputs
INT4 atlasFreeEgressBank2PMId (ATLAS atlas,UINT1 pmSessionId) ATLS_ACTIVE
atlas pmSessionId
: device handle (from atlasAdd) : Id of PM session to free
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_PM_SESSION_INDEX_RANGE
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
99
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Freeing PM Record Ids: atlasFreeEgressBank2PMId
This function frees a PM Record Id back to the Egress-Bank-2 free list. There is no validation that this session Id is not in use, nor that it is not already on the free list. Prototype Valid States Inputs
INT4 atlasFreeEgressBank2PMId (ATLAS atlas,UINT1 pmSessionId) ATLS_ACTIVE
atlas pmSessionId
: device handle (from atlasAdd) : Id of PM session to free
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_PM_SESSION_INDEX_RANGE
Writing PM Records: atlasWriteIngressBank1PMConfig
This function writes a PM record into the Internal Performance Monitoring Table. Prototype
INT4 atlasWriteIngressBank1PMConfig (ATLAS atlas,UINT1 pmSessionId,UINT2 pmConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas pmSessionId pmConfig
: device handle (from atlasAdd) : determines session Id to access (0127) : new PM configuration word
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PM_SESSION_ID
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
100
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Writing PM Records: atlasWriteIngressBank2PMConfig
This function writes a PM record into the Internal Performance Monitoring Table. Prototype
INT4 atlasWriteIngressBank2PMConfig (ATLAS atlas,UINT1 pmSessionId,UINT2 pmConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas pmSessionId pmConfig
: device handle (from atlasAdd) : determines session Id to access (0127) : new PM configuration word
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PM_SESSION_ID
Writing PM Records: atlasWriteEgressBank1PMConfig
This function writes a PM record into the Internal Performance Monitoring Table. Prototype
INT4 atlasWriteEgressBank1PMConfig (ATLAS atlas,UINT1 pmSessionId,UINT2 pmConfig) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas pmSessionId pmConfig
: device handle (from atlasAdd) : determines session Id to access (0127) : new PM configuration word
Outputs
None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
101
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PM_SESSION_ID
Writing PM Records: atlasWriteEgressBank2PMConfig
This function writes a PM record into the Internal Performance Monitoring Table. Prototype INT4 atlasWriteEgressBank2PMConfig (ATLAS atlas,UINT1 pmSessionId,UINT2 pmConfig)
ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas pmSessionId pmConfig
: device handle (from atlasAdd) : determines session Id to access (0127) : new PM configuration word
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PM_SESSION_ID
Reading PM Records: atlasReadIngressBank1PMRecord
This function reads a PM record from the Internal Ingress Bank 1 Performance Monitoring Table. Prototype
INT4 atlasReadIngressBank1PMRecord ( ATLAS atlas,UINT1 pmSessionId, UINT1 clearOnRead, sATLS_PM_RECORD *pmRecord) ATLS_INIT, ATLS_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
102
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs
atlas clearOnRead pmSessionId
: device handle (from atlasAdd) : 0 - registers not cleared upon read : 1 - registers cleared upon read : determines session Id to access (0127), : pointer to pmRecord to be filled in.
Outputs Returns
pmRecord
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PM_SESSION_ID
Reading PM Records: atlasReadIngressBank2PMRecord
This function reads a PM record from the Internal Ingress Bank 2 Performance Monitoring Table. Prototype
INT4 atlasReadIngressBank2PMRecord ( ATLAS atlas,UINT1 pmSessionId, UINT1 clearOnRead, sATLS_PM_RECORD *pmRecord) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas clearOnRead pmSessionId
: device Handle (from atlasAdd) : 0 - registers not cleared upon read : 1 - registers cleared upon read : determines session Id to access (0127), : pointer to pmRecord to be filled in.
Outputs Returns
pmRecord
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PM_SESSION_ID
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
103
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Reading PM Records: atlasReadEgressBank1PMRecord This function reads a PM record from the Internal Egress Bank 1 Performance Monitoring Table. Prototype
INT4 atlasReadEgressBank1PMRecord ( ATLAS atlas,UINT1 pmSessionId, UINT1 clearOnRead, sATLS_PM_RECORD *pmRecord) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas clearOnRead pmSessionId
: device handle (from atlasAdd) : 0 - registers not cleared upon read : 1 - registers cleared upon read : determines session Id to access (0127), : pointer to pmRecord to be filled in.
Outputs Returns
pmRecord
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PM_SESSION_ID
Reading PM Records: atlasReadEgressBank2PMRecord
This function reads a PM record from the Internal Egress Bank 2 Performance Monitoring Table. Prototype
INT4 atlasReadEgressBank2PMRecord ( ATLAS atlas,UINT1 pmSessionId, UINT1 clearOnRead, sATLS_PM_RECORD *pmRecord) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas clearOnRead pmSessionId
: device handle (from atlasAdd) : 0 - registers not cleared upon read : 1 - registers cleared upon read : determines session Id to access (0127), : pointer to pmRecord to be filled in.
Outputs
pmRecord
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
104
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PM_SESSION_ID
Getting Ingress VC PM parameters: atlasReadIngressPM
This function gets the Ingress VC PM configuration. This function returns the following VC ingress table fields : Row 0 : pmActive2, pmActive1 Row 1 : pmAddr2, pmAddr1. Prototype
INT4 atlasReadIngressPM(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_PM *pPM) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : PM config information structure.
Outputs Returns
pPM ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Ingress VC PM parameters: atlasWriteIngressPM
This function modifies the Ingress VC PM configuration; the following VC ingress table fields are updated : Row 0 : pmActive2, pmActive1 Row 1 : pmAddr2, pmAddr1. Prototype
INT4 atlasReadIngressPM(ATLAS atlas, UINT2 u2VcId, sATLS_INGRESS_PM *pPM)
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
105
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Valid States Inputs
ATLS_INIT, ATLS_ACTIVE
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : PM config information structure.
Outputs Returns
pPM ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Activating/Deactivating Ingress VC PM sessions: atlasWriteIngressPMActivation
This function activates/deactivates the Ingress VC PM session. Prototype
INT4 atlasWriteIngressPMActivate(ATLAS atlas, UINT2 u2VcId, UINT1 pm1, UINT1 pm2) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId pm1 pm2
: device handle (from atlasAdd) : index to the VC table record. : PM1 activation flag (1 = activate, 0 = deactivate) : PM2 activation flag (1 = activate, 0 = deactivate)
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
106
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Modifiying Ingress PM Parameters: atlasModifyIngressVcPM
This function modifies the Performance Monitoring parameters of an existing Ingress VC. This allows the association of PM sessions with an Ingress VC; it also allows the enable/disable of Performance Monitoring for the connection. Only performance monitoring parameters are updated. All other fields are ignored. Row 1: PmActive2, pmAddr2, pmActive1, pmAddr1 Prototype
INT4 atlasModifyIngressVcPM (ATLAS atlas, sATLS_INGRESS_RECORD *patlasIngressVCRecord) ATLS_ACTIVE
Valid States Inputs
atlas patlasIngressVCRecord
: device handle (from atlasAdd) : connection information structure.
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_PRIMARY_KEY_UNEXPECTED ATLS_ERR_PRIMARY_ADDR_RANGE ATLS_ERR_SECONDARY_ADDR_RANGE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_INVALID_VC_RECORD
Modifying Egresss PM Parameters: atlasModifyEgressVcPM
This function modifies the Performance Monitoring parameters of an existing connection. This allows the association of PM sessions with an Egress VC; it also allows the enable/disable of Performance Monitoring for the connection. Only performance monitoring parameters are updated. All other fields are ignored. Row 0: pmActive2, pmactive, Row 1: pmAddr2, pmAddr1
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
107
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Prototype
INT4 atlasModifyEgressVcPM (ATLAS atlas,sATLS_EGRESS_RECORD *patlasEgressVCRecord) ATLS_ACTIVE
Valid States Inputs
atlas patlasEgressVCRecord
: device handle (from atlasAdd) : connection information structure
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID ATLS_ERR_INVALID_FIELDA ATLS_ERR_INVALID_FIELDB ATLS_ERR_EVC_RECORD_ADDR_RANGE ATLS_ERR_EVC_RECORD_NOT_EXIST ATLS_ERR_INVALID_VC_RECORD
Getting Egress VC PM parameters: atlasReadEgressPM
This function gets the Egress VC PM configuration. This function returns the following VC egress table fields : Row 0 : pmActive2, pmActive1 Row 1 : pmAddr2, pmAddr1 Prototype
INT4 atlasReadEgressPM(ATLAS atlas, UINT2 u2VcId, sATLS_EGRESS_PM *pPM) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : PM config information structure.
Outputs
pPM
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
108
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Returns
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Modifying Egress VC PM parameters: atlasWriteEgressPM
This function modifies the Egress VC PM configuration; the following VC egress table fields are updated : Row 0: pmActive2, pmActive1. Row 1: pmAddr2, pmAddr1. Prototype
INT4 atlasWriteEgressPM(ATLAS atlas, UINT2 u2VcId, sATLS_EGRESS_PM *pPM) ATLS_INIT, ATLS_ACTIVE
Valid States Inputs
atlas u2VcId
: device handle (from atlasAdd) : index to the VC table record. : PM config information structure.
Outputs Returns
pPM ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
Activating/Deactivating Egress VC PM sessions: atlasWriteEgressPMActivation
This function activates/deactivates the Egress VC PM session. Prototype
INT4 atlasWriteEgressPMActivate(ATLAS atlas, UINT2 u2VcId, UINT1 pm1, UINT1 pm2)
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
109
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Valid States Inputs
ATLS_INIT, ATLS_ACTIVE
atlas u2VcId pm1 pm2
: device handle (from atlasAdd) : index to the VC table record. : PM1 activation flag (1 = activate, 0 = deactivate) : PM2 activation flag (1 = activate, 0 = deactivate)
Outputs Returns
None
ATLS_SUCCESS, ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_IVC_VC_NOT_EXIST ATLS_ERR_REG_POLL_TIMED_OUT ATLS_ERR_MOD_NOT_INIT
5.10 Cell Insertion/Extraction
This section defines functions that can be used to both insert cells into and remove cells from the MicroProcessor Cell interface. As the Cell FIFOs are of limited depth, the user is responsible for processing received cells in a timely manner.
Writing Ingress Cell Buffer Structures: atlasInsertIngressCell
This function writes the cell buffer structure passed by the user into the ATLAS microprocessor ingress cell interface which is then transmitted by the device. This call will fail if the transmit FIFO is full. Prototype
INT4 atlasInsertIngressCell(ATLAS atlas, UINT1 *psCellBuffer, sATLS_CELL_INS_CTRL *psCtrl) ATLS_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
110
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs
atlas psCellBuffer psCtrl
: device handle (from atlasAdd) : pointer to the buffer that contains the cell. : controls the insertion of the cell into the ingress output
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_CELL_INS_CTRL ATLS_ERR_ING_MUP_INS_BUSY
Reading Cells From Microprocessor Ingress: atlasExtractIngressCell
This function reads a cell from the microprocessor ingress FIFO for the specified device (if a cell is present). Users should keep reading cells until there are no more cells in the FIFO. Prototype
INT4 atlasExtractIngressCell (ATLAS atlas,UINT1 *psCellBuffer,UINT1 extPhyId,UINT1 *plength, UINT1 *pphyId) ATLS_ACTIVE
Valid States Inputs
atlas psCellBuffer extPhyId
: device handle (from atlasAdd) : pointer to the buffer that will contain the cell. : if non-zero, replace HEC with the PHYID; if zero, do not replace HEC with the PHYID : length of cell extracted : phyId
Outputs
pLength pphyId
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE ATLS_NO_CELL ATLS_ERR_INVALID_CELL_LENGTH
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
111
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Reading Cells From Microprocessor Ingress (OAM cells only): atlasRxCell
This function reads a cell from the microprocessor ingress FIFO for the specified device (if a cell is present) and process it based on its OAM type. Prototype Valid States Inputs Outputs Returns
INT4 atlasRxCell(ATLAS atlas) ATLS_ACTIVE
atlas
: device handle (from atlasAdd)
None
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE
Writing Egress Cell Buffer Structures: atlasInsertEgressCell
This function writes the cell buffer structure passed by the user into the ATLAS that is then transmitted by the device. This call will fail if the transmit FIFO is full. Prototype
INT4 atlasInsertEgressCell(ATLAS atlas,UINT1 *psCellBuffer,sATLS_CELL_INS_CTRL *psCtrl) ATLS_ACTIVE
Valid States Inputs
atlas psCellBuffer psCtrl
: device handle (from atlasAdd) : pointer to the buffer that contains the cell. : controls the insertion of the cell into the egress output.
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_CELL_INS_CTRL ATLS_ERR_EG_MUP_INS_BUS
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
112
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Reading Cells from Microprocessor Egress: atlasExtractEgressCell
This function reads a cell from the microprocessor egress FIFO for the specified device (if a cell is present). Users should keep reading cells until no more cells are available. Prototype
INT4 atlasExtractEgressCell (ATLAS atlas, UINT1 *psCellBuffer,UINT1 extPhyId, UINT1 *plength, UINT1 *pphyId) ATLS_ACTIVE
Valid States Inputs
atlas psCellBuffer extPhyId
: device handle (from atlasAdd) : pointer to the buffer that will contain the cell. : if non-zero, replace HEC with the PHYID; if zero, do not replace HEC with the PHYID : length of cell extracted. : phyId
Outputs
pLength phyId
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_STATE ATLS_NO_CELL ATLS_ERR_INVALID_CELL_LENGTH
5.11 Per-PHY Policing
This set of functions provides access to the Internal Per-PHY Policing RAM.
Writing Internal Per-PHY Policing Contents: atlasWritePerPHYPolicing
This function writes the internal Per-PHY Policing RAM contents. Prototype
INT4 atlasWritePerPHYPolicing(ATLAS atlas,UINT1 phyId, sATLS_PER_PHY_POLICING *pperPhyPolicing) ATLS_ACTIVE
Valid States
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
113
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs
altas phyId pperPhyPolicing
: device handle (from atlasAdd) : identifies the PHY device : the new per PHY policing record
Outputs Returns
None
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID
Reading Internal Per-PHY Policing Contents: atlasReadPerPHYPolicing
This function reads the internal Per-PHY Policing RAM contents. Prototype
INT4 atlasReadPerPHYPolicing(ATLAS atlas,UINT1 phyId, sATLS_PER_PHY_POLICING *pperPhyPolicing) ATLS_ACTIVE
Valid States Inputs
atlas phyId
: device handle (from atlasAdd) : identifies the PHY device : the new per PHY policing record
Outputs Returns
pperPhyPolicing
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_ERR_INVALID_PHYID
5.12 Statistics
This set of functions provides access to device counters and PHY counters, and to status information maintained by the device. The Static configuration of the counters, latch-high or rollover, is performed via the Initialization vector.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
114
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
The ATLAS device will indicate when counters are half full. It is the user's responsibility to ensure that they are read before any information is lost.
Reading Device Wide Counters: atlasGetDeviceCounts
This function reads the Device Wide counters and writes them into the Counter Structure specified. Prototype
INT4 atlasGetDeviceCounts (ATLAS atlas, sATLS_AGGR_COUNTS *patlasAggrCounters, UINT1 clearOnRead) ATLS_ACTIVE
Valid States Inputs
atlas clearOnRead
: device handle (from atlasAdd) : 0 - registers not cleared upon : 1 - registers cleared upon read : structure updated to reflect current device counters
Outputs
patlasAggrCounters
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE
5.13 Interrogation
This section defines the functions available to the user that can be used to request information from the ATLAS device. These functions will typically be used after the ATLAS device has indicated, via the Indication Callback function and associated status, that this information is available.
Reading Ingress VC Table Changes: atlasGetIngressVCTableCOS
This function reads the Ingress VC Table Change of Connection Status FIFO Registers and returns their value. The user should call this function until the FIFO is empty. Prototype Valid States
INT4 atlasGetIngressVCTableCOS (ATLAS atlas, UINT2 *pCOS) ATLS_ACTIVE
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
115
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Inputs Outputs
atlas
: device handle (from atlasAdd) : address to write Change Of State data
pCOS
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_COS_EMPTY
Reading Egress VC Table Changes: atlasGetEgressVCTableCOS
This function reads the Egress VC Table Change of Connection Status FIFO Registers and returns their values. The user should call this function until the FIFO is empty Note: This function can only be called from the ACTIVE state. Prototype Valid States Inputs Outputs
INT4 atlasGetEgressVCTableCOS (ATLAS atlas,UINT2 *pCOS) ATLS_ACTIVE
atlas
: device handle (from atlasAdd) : address to write Change Of State data
pCOS
Returns
ATLS_SUCCESS ATLS_ERR_INVALID_STATE ATLS_ERR_INVALID_DEVICE ATLS_COS_EMPTY
5.14 Interrupt Servicing
The ATLAS driver provides an ISR as well as a DPR for interrupt servicing.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
116
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
Reading Interrupt Status Registers: atlasISR
This function reads the interrupt status registers of the interrupting device and outputs the status information for later interpretation and processing by sysAtlasIntHandler. sysAtlasIntHandler will typically request the Deferred Processing Routine (DPR) to process the interrupt at a later time. If this function returns an ATLS_INTERRUPTS_OCCURRED value the sysAtlasIntHandler should send the associated Interrupt Status to the DPR Task using RTOS mechanisms. Returning a value from this function enables it to be called directly by a system specific high priority, polling task. Only if an ATLS_INTERRUPTS_OCCURRED value is returned should the polling task send the status to the Deferred Processing routine. This function may make a callback directly to the user's Exception Callback if an exception condition has occurred. Exception conditions indicate device problems that should not occur in normal operation. The user should decode the indicated exceptions and take appropriate, systemspecific action as indicated. The DPR Indication callback indIndication is intended to process expected, normal-case indications of device operation. Prototype Valid States Inputs
INT1 atlasISR(ATLAS atlas, sATLS_INT_STATUS *patlasIntStatus) ALL STATES
atlas
: device handle (from atlasAdd)
Outputs Returns
patlasIntStatus
: interrupt status information : no interrupts occurred : one or more interrupts occurred.
ATLS_SUCCESS ATLS_INTERRUPTS_OCCURRED
Processing Interrupt Status Information: atlasDPR
This function processes interrupt status information queued to it by the ISR. Processing involves ensuring an interrupt is indicated and calling the user's indication function indIndication with the indicated Interrupt Status.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
117
S/UNI-ATLAS(PM7324) Driver Manual Application Programming Interface
The user should decode the interrupt status and take appropriate, system-specific action on the indicated conditions. Prototype Valid States Inputs
void atlasDPR(ATLAS atlas,sATLS_INT_STATUS *patlasIntStatus) ALL STATES
atlas patlasIntStatus
: device handle (from atlasAdd) : interrupt status information
Outputs Returns
None None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
118
S/UNI-ATLAS(PM7324) Driver Manual Hardware Interface
6
6.1
HARDWARE INTERFACE
Device I/O
Reading Specific Address Contents: sysAtlasRawRead
This function is a low-level, system-specific macro, written in the format of a function, that can be used to read the contents of a specific ATLAS register. This macro should be modified by the user to reflect the system addressing logic. The following definition reflects the ATLAS registers presenting on 32-bit address boundaries, and the register value presenting in the bottom 16 bits. Prototype Valid States Inputs
#define sysAtlasRawRead(baseAddr,regId,pval),sysAtlasRawRead(UINT1 *baseAddr, UINT2 regId, UINT2 *pval) ALL STATES
baseAddr regId
: address of base register for ATLAS (Register 0) : Id of Register to read : value read
Outputs
pval
Writing Specific Address Contents: sysAtlasRawWrite
This function is a low-level, system-specific macro, written in the format of a function, that can be used to write the contents of a specific ATLAS register. This macro should be modified by the user to reflect the system addressing logic. The following definition reflects the ATLAS registers presenting on 32-bit address boundaries, and the register value presenting in the bottom 16 bits. Prototype Valid States Inputs
#define sysAtlasRawWrite(baseAddr,regId,val), sysAtlasRawWrite(UINT1 *baseAddr, UINT2 regId, UINT2 val) ALL STATES
baseAddr regId val
: address of base register for ATLAS (Register 0) : Id of Register to Write : value to write
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
119
S/UNI-ATLAS(PM7324) Driver Manual Hardware Interface
Outputs
None
Detecting New Devices: sysAtlasDeviceDetect
This function uses user context information to detect new ATLAS devices. The atlasAdd API function calls it. This function is system specific. Prototype
void syAtlasDeviceDetect(ATLS_USR_CTXT userContext, void **pdevBaseAddr)
Inputs Outputs Returns
userContext
: user Information Context : updated to reflect Base Address of device
pdevBaseAddr ATLS_SUCCESS ATLS_NO_DEVICE
6.2
Interrupt servicing ISR Installation and removal
The following system specific routines install and remove the interrupt handlers and deferred processing routines for the ATLAS devices.
Installing Process Vector Tables: sysAtlasIntInstallHandler
This function installs sysAtlasIntHandler in the processor vector table, spawns the sysAtlasDPRtask routines as a task, and creates a communication channel (for example, a message queue) between the two. This function could also choose to create the high priority polling task rather than install the ISR if the polling model was to be used. Prototype Inputs
void sysAtlasIntInstallHandler(void)
None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
120
S/UNI-ATLAS(PM7324) Driver Manual Hardware Interface
Outputs Returns
None None
Deleting Message Queues: sysAtlasIntRemoveHandler
This function deletes the sysAtlasDPRtask and associated message queue. It also removes the sysAtlasIntHandler routine from the processor's interrupt vector table. If the polling model was in use, this task would delete the high priority polling task. Prototype Inputs Outputs Returns
void sysAtlasIntRemoveHandler(void)
None None None
System specific ISR and DPR routines
The system-specific ISR and DPR routines, sysAtlasIntHandler and sysAtlasDPRtask, are installed by the sysAtlasIntInstallHandler routine.
Enabling Interrupt Processing: sysAtlasIntHandler
This routine is invoked when one or more ATLAS devices indicate interrupts. This routine invokes atlasISR for each device for which interrupt processing is enabled. For each device indicating an interrupt, this routine queues the interrupt status information for later processing by
sysAtlasDPRtask.
If there are several ATLAS device being managed there may be several messages queued from the atlasISR to the sysAtlasDPRtask. Prototype Inputs
void sysAtlasIntHandler(void)
None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
121
S/UNI-ATLAS(PM7324) Driver Manual Hardware Interface
Outputs Returns
None None
Retrieving Interrupt Status Information: sysAtlasDPRtask
This routine is spawned as a separate task within the RTOS. It retrieves interrupt status information saved for it by the sysAtlasIntHandler routine and invokes the atlasDPR routine indicating the appropriate device. Prototype Inputs Outputs Returns
void sysAtlasDPRtask(void)
None None None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
122
S/UNI-ATLAS(PM7324) Driver Manual RTOS interface
7
7.1
RTOS INTERFACE
Service Calls
The ATLAS driver uses the following RTOS services.
Memory Allocation/De-allocation
Allocating Bytes: sysAtlasMemAlloc
This function allocates a specified number of bytes. Prototype Inputs Outputs Returns
void *sysAtlasMemAlloc(UINT2 alloc_size)
alloc_size
: number of bytes to be allocated
None Pointer to first byte of allocated memory NULL pointer (memory allocation failed)
De-Allocating Memory: sysAtlasMemFree
This function de-allocates memory allocated using ATLASMemAlloc. Prototype Inputs Outputs Returns
void sysAtlasMemFree(void *addr)
addr
: pointer to memory to be freed
None None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
123
S/UNI-ATLAS(PM7324) Driver Manual RTOS interface
Setting Memory to a specified value: sysAtlasMemSet
This function is used to zero memeory. The driver uses this to reset data-structures. Prototype Inputs
VOID sysAtlasMemSet(VOID *ptr, UINT1 byte, UINT4 byteCount)
ptr byte bytecount
: pointer to start of memory to set : byte value to set in memory : the number of bytes, starting at ptr, to set.
Outputs Returns
None None
7.2
Indication Callbacks
The ATLAS driver uses the following indication routines to notify the applications of events within the device and driver. These routines need to be implemented by the user. The callback functions will be passed a copy of the full Interrupt Status Registers. The ATLAS device has many possible indications. These are categorized into two groups. System Exceptions (SE). These indicate device failure conditions. This indication will be made in the context of the device ISR. Therefore no RTOS blocking calls should be made. Application Indications (AI). These indicate device conditions that require application attention. When the atlasISR is invoked it will examine the Interrupt status mask to decide whether a System Exception indication should be raised. If so, the ISR will call the indException callback directly. If there is any interrupt status indicated, the altasISR function will indicate this to the user supplied function sysAtlasIntHandler. This function should then pass the interrupt status to the atlasDPR function. If an interrupt notification has been passed from to the atlasDPR from the atlasISR, the atlasDPR will make the indIndication callback. Each callback function will be called with the applications context ID and the full Interrupt Status Register contents. The following Tables indicate which categories the Interrupt indications fall into.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
124
S/UNI-ATLAS(PM7324) Driver Manual RTOS interface
Table 34: ATLAS Interrupt Reg #1 Categories Interrupt Name
ATLS_INT_1_I_INVALI ATLS_INT_1_I_PTIVCII ATLS_INT_1_I_OAMERRI ATLS_INT_1_I_SEG_CCI ATLS_INT_1_I_END_CCI ATLS_INT_1_I_SEG_AISI ATLS_INT_1_I_END_AISI ATLS_INT_1_I_SEG_RDII ATLS_INT_1_I_END_RDII ATLS_INT_1_I_POLI ATLS_INT_1_I_XPOLI ATLS_INT_1_I_XFERI
Category
AI AI AI AI AI AI AI AI AI AI AI AI
Table 35: ATLAS Interrupt Reg #2 Categories Interrupt Name
ATLS_INT_2_I_FULLI ATLS_INT_2_I_UPFOVRI ATLS_INT_2_I_UPCAI ATLS_INT_2_I_INSRDYI ATLS_INT_2_I_RSOCI ATLS_INT_2_I_RPRTYI ATLS_INT_2_I_PCELLI ATLS_INT_2_I_SRCHERRI ATLS_INT_2_I_BCIFFULLI ATLS_INT_2_I_PHYPOLI ATLS_INT_2_I_PHYXPOLI ATLS_INT_2_I_COSFULLI ATLS_INT_2_I_XCOSI
Category
AI AI AI AI SE SE SE AI AI AI AI AI AI
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
125
S/UNI-ATLAS(PM7324) Driver Manual RTOS interface
Table 36: ATLAS Interrupt Reg #3 Categories Interrupt Name
ATLS_INT_3_I_SPRTYI[0] ATLS_INT_3_I_SPRTYI[1] ATLS_INT_3_I_SPRTYI[2] ATLS_INT_3_I_SPRTYI[3] ATLS_INT_3_I_SPRTYI[4] ATLS_INT_3_I_SPRTYI[5] ATLS_INT_3_I_SPRTYI[6] ATLS_INT_3_I_SPRTYI[7] ATLS_INT_3_E_SPRTYI[0] ATLS_INT_3_E_SPRTYI[1] ATLS_INT_3_E_SPRTYI[2] ATLS_INT_3_E_SPRTYI[3]
Category
SE SE SE SE SE SE SE SE SE SE SE SE
Table 37: ATLAS Interrupt Reg #4 Categories Interrupt Name
ATLS_INT_4_E_XFERI ATLS_INT_4_E_PTIVCII ATLS_INT_4_E_OAMERR ATLS_INT_4_E_SEG_CCI ATLS_INT_4_E_END_CCI ATLS_INT_4_E_Seg_AISI ATLS_INT_4_E_End_AISI ATLS_INT_4_E_Seg_RDII ATLS_INT_4_E_End_RDII ATLS_INT_4_E_FULLI ATLS_INT_4_E_UPFOVRI ATLS_INT_4_E_UPCAI ATLS_INT_4_E_INSRDYI ATLS_INT_4_E_IOVRI
Category AI AI AI AI AI AI AI AI AI AI AI AI AI AI
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
126
S/UNI-ATLAS(PM7324) Driver Manual RTOS interface
Interrupt Name
ATLS_INT_4_E_PCELLI
Category AI
Table 38: ATLAS Interrupt Reg #5 Categories Interrupt Name
ATLS_INT_5_E_ISOCI ATLS_INT_5_E_IPRTYI ATLS_INT_5_E_IWRENBI ATLS_INT_5_E_BCIFFULLI ATLS_INT_5_E_COSFULLI ATLS_INT_5_E_XCOSI ATLS_INT_5_E_SEARCHEI
Category SE SE SE AI AI AI AI
Callback Functions
The following defines the callback functions that the user needs to provide.
Informing the User of OAM Cell Processing: indOAMRx
This function informs the user that a OAM cell has been processed (Loopback or Activation/Deactivation CC). This function will be called by the altasRxCell routine.
Prototype
void indOamRx(ATLS_USR_CTXT usrCtxt, INT4 u4OamType, UINT1 u1CmdFlag, INT4 arg1, INT4 arg2, INT4 result)
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
127
S/UNI-ATLAS(PM7324) Driver Manual RTOS interface
Inputs
usrCxt
: user's context information for this ATLAS device : Indicates the type of the OAM cell
ATLS_OAM_LPBK : Indicates a Loopback cell. ATLS_OAM_CC_ACT_DEACT : Indicates a
u4OamType
activation/deactivation CC cell
u1CmdFlag
: Indicates the type of cell received
ATLAS_OAM_RESPONSE : An OAM response has been
received (confirmation message)
ATLAS_OAM_COMMAND : An OAM command has been
received (activation/decativation)
arg1 arg2 result
: OAM function type. : The connection VC Id. : Indicates if the OAM processing has been succesful.
Outputs Returns
None None
Requesting a Backward Connection Information from the User : indBackEci
This function requests the backward connection information (needed for the OAM processing) to the user. This function will be called by the altasRxCell routine. Prototype
void indBackEci(ATLS_USR_CTXT usrCtxt, UINT2 u2ICI, INT4 *pResult, UINT1 *pu1PhyId, UINT2 *pu2ECI)
Inputs
usrCxt u2ICI pResult pu1PhyId pu2ECI
: user's context information for this ATLAS device : The connection ID of the forward OAM connection : The result of the request returned by the user. : The Phy ID of the backward connection returned by the user. : The backward connection VC ID returned by the user.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
128
S/UNI-ATLAS(PM7324) Driver Manual RTOS interface
Outputs Returns
None None
Informing the User of an Occurrence of a System Exception : indException
This function informs the user that a System Interrupt/Exception has occurred. The user should process all indicated exceptions in this category. This function will be called by the altasISR routine. Note that this function, since it is called in the context of an ISR, should not make any blocking calls to an RTOS. This function should be used to process the interrupts that indicate a device exception. An exception is a condition that is not part of the standard operation of the device. All available interrupts/exceptions will be indicated in the status. Prototype
void indException(ATLS_USR_CTXT usrCtxt, sATLS_INT_STATUS *intStatus, UINT1 arg1, UINT1 arg2, UINT1 arg3)
Inputs
usrCxt intStatus arg1 arg2 arg3
: user's context information for this ATLAS device : structure indicating all the ATLAS interrupts indicated. : not used. : not used. : not used.
Outputs Returns
None None
Informing the User of an Occurrence of a Normal Interrupt : indIndication
This function informs the user that a normal Interrupt indicating that user action is required has occurred. The user should process all indicated interrupts in this category. This function will be called by the altasDPR routine. This function should be used to process the interrupts that indicate the normal operation of the device. This can be microprocessor cell availability, counter overflow, etc.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
129
S/UNI-ATLAS(PM7324) Driver Manual RTOS interface
All available interrupts/exceptions will be indicated in the status. Prototype Inputs
void indIndication(ATLS_USR_CTXT usrCtxt, sATLS_INT_STATUS *intStatus)
usrCxt intStatus
: user's context information for this ATLAS device : structure indicating all the ATLAS interrupts indicated.
Outputs Returns
None None
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
130
S/UNI-ATLAS(PM7324) Driver Manual Porting the Driver
8
PORTING THE DRIVER
This section outlines how to port the ATLAS device driver to your hardware and RTOS platform. Note: Because each platform and application is unique, this manual can only offer guidelines for porting the ATLAS driver.
8.1
Driver Source Files
The C source files listed in Figure 8 contain the code for the ATLAS driver. You may need to modify the code or develop additional code. The code is in the form of constants, macros, and functions. For the ease of porting, the code is grouped into source files (src) and include files (inc). The src files contain the functions and the inc files contain the constants and macros. Figure 8: Driver Source Files
atlsdrv src atls_api.c (contains all API functions) atls_api2.c (contains driver internal functions) atls.c (contains driver internal functions) atls2.c (contains driver internal functions) atls_hw.c (contians hardware related interface functions) atls_rtos.c (contains rtos related interface functions) atls_test.c (contains sample driver callback functions)
inc
atls.h (contains driver internal function prototypes) atls_api.h (contains data-structure definitions and prototypes) atls_cfg.h (contains platform specific macro definitions) atls_err.h (contains ATLAS error code definitions) atls_hw.h (contains prototype for platform specific device detection routine) atls_rtos.h (contains rtos interface function proto-types) atls_types.h (defines base types for use by ATLAS and the application) atls_test.h (contains callback functions prototypes)
Makefile
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
131
S/UNI-ATLAS(PM7324) Driver Manual Porting the Driver
8.2
Driver Porting Procedures
The following steps summarize how to port the ATLAS driver to your platform. The following sections describe these steps in more detail. Note: Because each platform and application is unique, this manual can only offer guidelines for porting the ATLAS driver.
8.3
Driver Porting Procedures
The following procedures summarize how to port the ATLAS driver to your platform. The subsequent sections describe these procedures in more detail. Procedure 1: Port the driver's RTOS extensions (page 132): Procedure 2: Port the driver to your hardware platform (page 133): Procedure 3: Port the driver's application-specific elements (page 134): Procedure 4: Build the driver (page 135).
Procedure 1 : Porting the Driver's RTOS Extensions
The RTOS extensions encapsulate all RTOS specific services and data types used by the driver. The atls_rtos.h file contains data types and compiler-specific data-type definitions. It also contains macros for RTOS specific services used by the RTOS extensions. These RTOS extensions include: * * * Task management Message queues Memory Management
In addition, you may need to modify functions that use RTOS specific services, such as utility and interrupt-event handling functions. The atls_rtos.c file contains the utility and interrupt-event handler functions that use RTOS specific services.
To port the driver's RTOS extensions:
1. Modify the data types in atls_types.h. The number after the type identifies the data-type size. For example, UINT4 defines a 4-byte (32-bit) unsigned integer. Substitute the compiler types that yield the desired types as defined in this file. 2. Modify the RTOS specific services in atls_rtos.h. Redefine the following macros to the corresponding system calls that your target system supports:
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
132
S/UNI-ATLAS(PM7324) Driver Manual Porting the Driver
Service Type Memory
Macro Name
sysAtlasMemCopy
Description Copies the memory block from src to dest
3. Modify the utilities and interrupt services that use RTOS specific services in the atls_rtos.c. The atls_rtos.c file contains the utility and interrupt-event handler functions that use RTOS specific services. Refer to the function headers in this file for a detailed description of each of the functions listed below: Service Type Memory Interrupt Function Name
sysAtlasMemAlloc sysAtlasMemFree sysAtlasIntInstallHandler sysAtlasIntRemoveHandler sysAtlasIntHandler sysAtlasDPRTask
Description Allocates the memory block Frees the memory block Installs the interrupt handler for the RTOS Removes the interrupt handler from the RTOS Interrupt handler for the ATLAS device Deferred process routine for interrupts
Procedure 2: Porting the Driver to a Hardware Platform
This section describes how to modify the ATLAS driver for your hardware platform.
To port the driver to your hardware platform:
1. Modify the device detection function in the atls_hw.c file. The function sysAtlasDeviceDetect is implemented for a PCI platform. Modify it to reflect your specific hardware interface. Its purpose is to detect a ATLAS device based on a UsrContext input parameter. It returns two output parameters: The base address of the ATLAS device A pointer to the system-specific configuration information
2. Modify the low-level device read/write macros in the atls_cfg.h file. You may need to modify the raw read/write access macros (sysAtlasRawRead and sysAtlasRawWrite) to reflect your system's addressing logic.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
133
S/UNI-ATLAS(PM7324) Driver Manual Porting the Driver
Procedure 3: Porting the Driver's Application-Specific Elements
Application specific elements are configuration constants used by the API for developing an application. This section describes how to modify the application specific elements in the ATLAS driver. Before you port the driver's application-specific elements, ensure that you: 1. Port the driver's RTOS extensions 2. Port the driver to your hardware platform
To port the driver's application-specific elements:
1. Define the following driver task-related constants for your RTOS-specific services in file atls_rtos.h and atls_cfg.h #Define
ATLS_DPR_TASK_PRIORITY ATLS_DPR_TASK_STACK_SIZE ATLS_POLLING_DELAY
Description Deferred Task (DPR) task priority DPR task stack size, in bytes Constant used in polling task mode, this constant defines the interval time in millisecond between each polling action Delay time in millisecond. When clearing the DPR loop active flag in the DPR task, this delay is used to gracefully shutdown the DPR task before deleting it. The queue message depth of the queue used for pass interrupt context between the ISR task and DPR task The maximum number of ATLAS devices in the system
Default
85 4096 50
ATLS_TASK_SHUTDOWN_DELAY
10
ATLS_MAX_DPR_MSGS
10
ATLS_MAX_NUM_DEVS
1
2. Code the callback functions according to your application. There are four sample callback functions in the atls_test.c file. You can use these callback functions or you can customize them before using the driver. The driver will call these callback functions when an event occurs on the device. These functions must conform to the following prototypes: void indOamRx(ATLS_USR_CTXT usrCtxt, INT4 u4OamType, UINT1 u1CmdFlag, INT4 arg1, INT4 arg2, INT4 result) void indBackEci(ATLS_USR_CTXT usrCtxt, UINT2 u2ICI, INT4 *pResult, UINT1 *pu1PhyId, UINT2 *pu2ECI)
134
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS(PM7324) Driver Manual Porting the Driver
void indIndication(ATLS_USR_CTXT usrCtxt, sATLS_INT_STATUS *intStatus) void indException(ATLS_USR_CTXT usrCtxt, sATLS_INT_STATUS *intStatus, UINT1 arg1, UINT1 arg2, UINT1 arg3)
3. The driver processes only two types of cells through the microprocessor port : OAM Loopback and CC Activation/Deactivation. If you want to process other types of cells through the microprocessor port, you should modify the atlasRXCell API in the atls_api2.c file.
Procedure 4: Building the Driver
This section describes how to build the ATLAS driver. To build the driver: 1. Modify the Makefile to reflect the absolute path of your code, your compiler and compiler options. 2. Choose from among the different compile options supported by the driver as per your requirements. 3. Compile the source files and build the ATLAS API driver library using your make utility. 4. Link the ATLAS API driver library to your application code.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
135
S/UNI-ATLAS(PM7324) Driver Manual Appendix: Coding Conventions
APPENDIX: CODING CONVENTIONS
This section describes the coding conventions used in the implementation of all PMC driver software.
Variable Type Definitions
Table 39: Variable Type Definitions Type
UINT1 UINT2 UINT4 INT1 INT2 INT4
Description unsigned integer - 1 byte unsigned integer - 2 bytes unsigned integer - 4 bytes signed integer - 1 byte signed integer - 2 bytes signed integer - 4 bytes
Naming Conventions
Table 30 presents a summary of the naming conventions followed by all PMC driver software. A detailed description is then given in the following sub-sections. The names used in the drivers are verbose enough to make their purpose fairly clear. This makes the code more readable. Generally, the device's name or abbreviation appears in prefix. Table 40: Naming Conventions Type Macros Constants Structures API Functions Case Uppercase Uppercase Hungarian Notation Hungarian Notation Naming convention prefix with "m" and device abbreviation prefix with device abbreviation prefix with "s" and device abbreviation prefix with device name Examples
mAtlas_WRITE ATLS_REG
sATLS_INIT_VECTOR
atlasAdd()
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
136
S/UNI-ATLAS(PM7324) Driver Manual Appendix: Coding Conventions
Type Porting Functions Other Functions Variables Pointers to variables Global variables
Case Hungarian Notation Hungarian Notation Hungarian Notation Hungarian Notation Hungarian Notation
Naming convention prefix with "sys" and device name
Examples
sysAtlasRead() myOwnFunction() maxDevs
prefix variable name with "p" pmaxDevs prefix with device name
atlasGDD
Macros
The following list identifies the marcro conventions used in the driver code: Macro names can be uppercase. Words can be separated by an underscore. The letter `m' in lowercase is used as a prefix to specify that it is a macro, then the device abbreviation appears. Example: mAtlas_WRITE is a valid name for a macro.
Constants
The following list identifies the const ants conventions used in the driver code: Constant names can be uppercase. Words can be separated by an underscore. The device abbreviation can appear as a prefix. Example: ATLS_REG is a valid name for a constant.
Structures
The following list identifies the structures conventions used in the driver code: Structure names can be uppercase. Words can be separated by an underscore.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
137
S/UNI-ATLAS(PM7324) Driver Manual Appendix: Coding Conventions
The letter `s' in lowercase can be used as a prefix to specify that it is a structure, then the device abbreviation appears. Example: sATLS_INIT_VECTOR is a valid name for a structure.
Functions
API Functions Naming of the API functions follows the hungarian notation. The device's full name in all lowercase can be used as a prefix. Example: atlasAdd() is a valid name for an API function. Porting Functions Porting functions correspond to all function that are HW and/or RTOS dependant. Naming of the porting functions follows the hungarian notation. The `sys' prefix can be used to indicate a porting function. The device's name starting with an uppercase can follow the prefix. Example: sysAtlasRead() is a hardware / RTOS specific. Other Functions Other Functions are all the remaining functions that are part of the driver and have no special naming convention. However, they can follow the hungarian notation. Example: myOwnFunction() is a valid name for such a function.
Variables
Naming of variables follows the hungarian notation. A pointer to a variable shall use `p' as a prefix followed by the variable name unchanged. If the variable name already starts with a `p', the first letter of the variable name may be capitalized, but this is not a requirement. Double pointers might be prefixed with `pp', but this is not required. Global variables are identified with the device's name in all lowercase as a prefix. Examples: maxDevs is a valid name for a variable, pmaxDevs is a valid name for a pointer to maxDevs, and atlasBaseAddress is a valid name for a global variable.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
138
S/UNI-ATLAS(PM7324) Driver Manual Appendix: Coding Conventions
Note: Both pprevBuf and pPrevBuf are accepted names for a pointer to the prevBuf variable, and that both pmatrix and ppmatrix are accepted names for a double pointer to the variable matrix.
File Organization
Table 41 presents a summary of the file naming conventions. All file names must start with the device abbreviation, followed by an underscore and the actual file name. File names should convey their purpose with a minimum amount of characters. If a file size is getting too big one might separate it into two or more files, providing that a number is added at the end of the file name (e.g. atls_api1.c or atls_api2.c). There are 4 different types of files: The API file containing all the API functions The hardware file containing the hardware dependant functions The RTOS file containing the RTOS dependant functions The other files containing all the remaining functions of the driver Table 41: File Naming Conventions File Type API Hardware Dependant RTOS Dependant Other File Name
atls_api1.c, atls_api.h atls_hw.c, atls_hw.h atls_rtos.c, atls_rtos.h atls_isr.c, atls_defs.h
API Files
The name of the API files must start with the device abbreviation followed by an underscore and `api'. Eventually a number might be added at the end of the name. Examples: atls_api1.c is the only valid name for the file that contains the first part of the API functions, atls_api.h is the only valid name for the file that contains all of the API functions headers.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
139
S/UNI-ATLAS(PM7324) Driver Manual Appendix: Coding Conventions
Hardware Dependent Files
The name of the hardware dependent files must start with the device abbreviation followed by an underscore and `hw'. Eventually a number might be added at the end of the file name. Examples: atls_hw.c is the only valid name for the file that contains all of the hardware dependent functions, atls_hw.h is the only valid name for the file that contains all of the hardware dependent functions headers.
RTOS Dependant Files
The name of the RTOS dependant files must start with the device abbreviation followed by an underscore and `rtos'. Eventually a number might be added at the end of the file name. Examples: atls_rtos.c is the only valid name for the file that contains all of the RTOS dependent functions, atls_rtos.h is the only valid name for the file that contains all of the RTOS dependent functions headers.
Other Driver Files
The name of the remaining driver files must start with the device abbreviation followed by an underscore and the file name itself, which should convey the purpose of the functions within that file with a minimum amount of characters. Examples: atls_isr.c is a valid name for a file that would deal with initialization of the device, atls_defs.h is a valid name for the corresponding header file.
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
140
S/UNI-ATLAS(PM7324) Driver Manual Acronyms
ACRONYMS
API: Application Programming Interface DDB: Device Data Block DIV: Device Initialization Vector DPR: Deferred Processing Routine FIFO: First in, first out GDD: Global driver database GPIC: PCI controller HCS: Header check sequence HDLC: High-level data link control ISR: Interrupt Service Routine MIV: Module Initialization Vector MVIP: Multi-vendor integration protocol PCI: Processor connection interface PHY: Physical layer RAPI: Receive Any-PHY packet interface RTOS: Real-Time operating system
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
141
S/UNI-ATLAS(PM7324) Driver Manual Index
INDEX
activating devices
atlasActivate, 23, 61, 62
adding devices
atlasAdd, 23, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 120, 136, 138 atlasAddEgressDummyConnection, 66
alternate
alternateEgressCellCount1, 47, 49 alternateEgressCellCount2, 47, 49 alternateIngressCellCount1, 42, 45 alternateIngressCellCount2, 42, 45
API, 16, 17, 18, 19, 20, 23, 24, 25, 28, 120, 134, 135, 136, 138, 139, 141 Application Programming Interface, 16, 18, 57, 141 APS, 36, 37 base address
atlasBaseAddress, 138
buffer
pPrevBuf, 139 prevBuf, 139
callbacks
ATLS_IND_BACKWARD_ECI, 33 ATLS_IVC_AIS_DEFECT_LOCATI ON_SIZE, 42, 43, 48 ATLS_IVC_HEADER_SIZE, 41, 45 ATLS_MAX_DPR_MSGS, 134
ATLS_MAX_NUM_DEVS, 30, 134 ATLS_POLLING_DELAY, 134 ATLS_PRESENT, 31, 59, 60, 61, 63 ATLS_REG, 136, 137 ATLS_TASK_SHUTDOWN_DELAY , 134 ATLS_USR_CTXT, 31, 56, 59, 120, 127, 128, 129, 130, 134, 135 indication ATLS_IND_INDICATION, 33 ATLS_IND_OAM_RX, 33 ATLS_IND_SYS_EXCEPT, 33 initialization ATLS_INIT, 31, 61, 62, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110 interrupt ATLS_INT_1_I_END_AISI, 125 ATLS_INT_1_I_END_CCI, 125 ATLS_INT_1_I_END_RDII, 125 ATLS_INT_1_I_INVALI, 125 ATLS_INT_1_I_OAMERRI, 125 ATLS_INT_1_I_POLI, 125 ATLS_INT_1_I_PTIVCII, 125 ATLS_INT_1_I_SEG_AISI, 125 ATLS_INT_1_I_SEG_CCI, 125 ATLS_INT_1_I_SEG_RDII, 125 ATLS_INT_1_I_XFERI, 125 ATLS_INT_1_I_XPOLI, 125 ATLS_INT_2_I_BCIFFULLI, 125 ATLS_INT_2_I_COSFULLI, 125 ATLS_INT_2_I_FULLI, 125 ATLS_INT_2_I_INSRDYI, 125 ATLS_INT_2_I_PCELLI, 125 ATLS_INT_2_I_PHYPOLI, 125 ATLS_INT_2_I_PHYXPOLI, 125 ATLS_INT_2_I_RPRTYI, 125 ATLS_INT_2_I_RSOCI, 125 ATLS_INT_2_I_SRCHERRI, 125 ATLS_INT_2_I_UPCAI, 125 ATLS_INT_2_I_UPFOVRI, 125 ATLS_INT_2_I_XCOSI, 125
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
142
S/UNI-ATLAS(PM7324) Driver Manual
ATLS_INT_3_E_SPRTYI, 126 ATLS_INT_3_I_SPRTYI, 126 ATLS_INT_4_E_End_AISI, 126 ATLS_INT_4_E_END_CCI, 126 ATLS_INT_4_E_End_RDII, 126 ATLS_INT_4_E_FULLI, 126 ATLS_INT_4_E_INSRDYI, 126 ATLS_INT_4_E_IOVRI, 126 ATLS_INT_4_E_OAMERR, 126 ATLS_INT_4_E_PCELLI, 127 ATLS_INT_4_E_PTIVCII, 126 ATLS_INT_4_E_Seg_AISI, 126 ATLS_INT_4_E_SEG_CCI, 126 ATLS_INT_4_E_Seg_RDII, 126 ATLS_INT_4_E_UPCAI, 126 ATLS_INT_4_E_UPFOVRI, 126 ATLS_INT_4_E_XFERI, 126 ATLS_INT_5_E_BCIFFULLI, 127 ATLS_INT_5_E_COSFULLI, 127 ATLS_INT_5_E_IPRTYI, 127 ATLS_INT_5_E_ISOCI, 127 ATLS_INT_5_E_IWRENBI, 127 ATLS_INT_5_E_SEARCHEI, 127 ATLS_INT_5_E_XCOSI, 127 interrupt servicing atls_isr.c, 139, 140 sCb, 32
calling
ATLS_ACTIVE, 31, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116 ATLS_DPR_TASK_PRIORITY, 134 ATLS_EMPTY, 31, 59
Data Structures, 30, 55 DDB, 20, 21, 22, 23, 30, 31, 59, 60, 61, 141 deactivating devices
atlasDeactivate, 62
Deferred Processing Routine, 17, 26, 117, 141 deleting devices
atlasDelete, 23, 28, 60, 64
device
altasDPR, 27, 129 altasISR, 124, 129
configuration
deviceAddr, 31 maxDevs, 137, 138 numDevs, 30 pmaxDevs, 137, 138
Device Activation, 61 device data base
configStatus, 50 masterCfg, 33 mPCellCfg, 33 OAMConfiguration, 41, 44, 47, 49 pMCfg, 33 policeConfiguration, 41, 44
constants
ATLS_DDB, 31
Device Data Block, 21, 23, 30, 31, 55, 141 device diagnostics, 63 device initialization, 17, 24, 25, 60, 141 Device Initialization Vector, 141 device states, 23 DIV, 141
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
143
S/UNI-ATLAS(PM7324) Driver Manual
DPR, 17, 19, 21, 26, 27, 28, 116, 117, 121, 134, 141 driver
functions and features, 17 hardware interface, 19 interfaces, 18 library module, 20 porting procedures, 132 source files, 131
egress
bank Bank1PMFree, 32 Bank2PMFree, 32 cell count egInCellCount, 54 cellcount egressCellCount1, 47, 49 egressCellCount2, 47, 49 configuration egBackOAMHOLCfg, 37 egBackOAMPacingCfg, 38 egBackRptCfg, 36 egCellDirCfg1, 37 egCellDirCfg2, 37 egCellProcCfg, 36 egCellRtgCfg, 36 egInCellCfg1, 36 egInCellCfg2, 36 egMPCExtCfg, 39 egMPCInsCfg, 39 egOutCellCfg1, 36 egOutCellCfg2, 36 egPacedAISCCCfg, 37 egPacedFwdPMCfg, 37 egPerPHYAISCfg1, 37 egPerPHYCountCfg, 38 egPerPHYRDICfg1, 37 egPerPHYRDICfg2, 37 egRDIBackOAMCfg, 36 egressCfg, 33 egVCCountingCfg2, 37 configuration record, 48 count egOutCellCount, 54 egPhyCLP0Count, 54
egPhyCLP1Count, 54 egPhyInvVciPtiCount, 55 egPhyOAMCount, 54 egPhyRMCount, 54 counts record, 49 DefLoc egDefLoc0_1, 37 egDefLoc10_11, 37 egDefLoc12_13, 38 egDefLoc14_15, 38 egDefLoc2_3, 37 egDefLoc4_5, 37 egDefLoc6_7, 37 egDefLoc8_9, 37 deleting atlasDeleteEgressConnection, 66, 67 disabling atlasDisableEgressVC, 73 enabling atlasEnableEgressVC, 73, 74 error count egPhyOAMRMErrorCount, 54 extracting atlasExtractEgressCell, 113 freeing atlasFreeEgressBank1PMId, 99 atlasFreeEgressBank2PMId, 99, 100 getting atlasGetEgressBank1PMId, 97 atlasGetEgressBank2PMId, 98 atlasGetEgressVc, 74 atlasGetEgressVcCounts, 72 atlasGetEgressVcStatus, 71, 72, 74 atlasGetEgressVCTableCOS, 116 inserting atlasInsertEgressCell, 112 key record, 49, 50 map egCellProcF4PMMap, 38 egCellProcF5PMMap, 38 max egVCTableMax, 38 MaxVCs, 31 modifying
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
144
S/UNI-ATLAS(PM7324) Driver Manual
atlasModifyEgressVc, 87 atlasModifyEgressVcPhyId, 88 atlasModifyEgressVcPM, 107, 108 atlasModifyEgressVcVpiVci, 88 OAM egOAMDefType10_11, 37 egOAMDefType12_13, 37 egOAMDefType14_15, 37 egOAMDefType2_3, 37 egOAMDefType6_7, 37 egOAMDefType8_9, 37 OAM configuration record, 48, 49 OAM defect record, 48 patlasEgressVCRecord, 65, 66, 67, 71, 72, 74, 87, 88, 89, 108 PerPHY egPerPHYAPSInd1, 37 PM record, 49 PMThresh egPMThreshA1, 39 egPMThreshB1, 39 egPMThreshB2, 39 egPMThreshC1, 39 egPMThreshC2, 39 egPMThreshD1, 39 egPMThreshD2, 39 reading atlasReadEgressBank1PMRecord, 104 atlasReadEgressBank2PMRecord, 104 atlasReadEgressConfig, 89 atlasReadEgressCounts, 72 atlasReadEgressOAMConfig, 90, 91 atlasReadEgressOAMDefect, 92 atlasReadEgressPM, 108 record type, 46, 47 registers, 36 virtual connection evcFieldALength, 32 evcFieldAMask, 32 evcFieldBLength, 32 evcFieldBMask, 32 evcInitialised, 31 evcMaxFieldAValue, 32 evcMaxFieldBValue, 32
evcMaxPhyIdValue, 32 evcPhyIdLength, 32 evcPhyIdMask, 32 evcRecordAddrExists, 31 writing atlasWriteEgressAISActivation, 94 atlasWriteEgressBank1PMConfig, 101 atlasWriteEgressCCActivation, 94 atlasWriteEgressConfig, 90 atlasWriteEgressOAMConfig, 91 atlasWriteEgressOAMDefect, 92 atlasWriteEgressPM, 109 atlasWriteEgressPMActivation, 109 atlasWriteEgressRDIActivation, 95 atlasWriteEgressVpcPointer, 93
engress virtual connection
defaultEvcRam, 32 defEgRecord, 33
fieldA, 40, 46, 47, 50, 65, 67, 68, 71, 72, 74, 75 fieldB, 40, 46, 47, 50, 65, 67, 68, 71, 72, 74, 75 FIFO, 25, 110, 111, 112, 113, 115, 116, 141 forceAddr, 64, 65, 66 frame count
remainingFrameCount, 41, 45
GDB, 57 GDD, 21, 22, 30, 57, 141 getting
atlasGetDeviceCounts, 115
Global Driver Data Base
atlasGDD, 137
Global Driver Database, 21, 23, 30 GPIC, 141
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
145
S/UNI-ATLAS(PM7324) Driver Manual
hardware
atls_hw.c, 133, 139, 140 atls_hw.h, 139, 140
Hardware Access, 58 Hardware Interface, 19, 119 HCS, 141 HDLC, 141 Header Check Sequence, 141 ingress
adding atlasAddIngressConnection, 63, 64 cell ingPacedFwdPMCell, 38 cellcount ingInCellCount, 53 configuration ingBackRptCfg, 34 ingCellCntCfg1, 36 ingCellCntCfg2, 36 ingCellProcCfg1, 34 ingCellProcCfg2, 36 ingCellRtgCfg, 35 ingConPolCfg1, 34 ingConPolCfg2, 35 ingConPolCfg3, 35 ingConPolCfg4, 35 ingConPolCfg5, 35 ingConPolCfg6, 35 ingConPolCfg7, 35 ingConPolCfg8, 35 ingFieldACfg, 34 ingFieldBCfg, 34 ingInCellCfg1, 34 ingInCellCfg2, 34 ingMPCExtCfg, 39 ingMPCInsCfg, 39 ingOAMCellGenCfg, 35 ingOutCellCfg1, 34 ingOutCellCfg2, 34 ingPerPHYAISCfg1, 35 ingPerPHYAISCfg2, 35 ingPerPHYAPSIndCfg1, 36
ingPerPHYAPSIndCfg2, 36 ingPerPHYCountCfg, 36 ingPerPHYRDICfg1, 35 ingPerPHYRDICfg2, 35 ingPHYPolCfg1_2, 34 ingPHYPolCfg3_4, 34 ingRDIBackOAMcfg, 34 ingressCfg, 33 ingSearchCfg, 34 configuration record, 43 count ingPhyCLP0Count, 54 ingPhyCLP1Count, 54 ingPhyInvVpiVciPtiCount, 54 ingPhyNonZeroGFCCount, 54 ingPhyOAMCount, 54 ingPhyOAMRMErrorCount, 54 ingPhyRMCount, 54 ingPhysCellCount, 53 ingPolCfgNonCompCnt, 35 ingressCellCount1, 41, 45 ingressCellCount2, 41, 45 counters ingPerPhyCounters, 54 counts record, 44, 45 DefLoc ingDefLoc0_1, 35 ingDefLoc10_11, 35 ingDefLoc12_13, 35 ingDefLoc14_15, 35 ingDefLoc2_3, 35 ingDefLoc4_5, 35 ingDefLoc6_7, 35 ingDefLoc8_9, 35 deleting atlasDeleteIngressConnection, 64 disabling atlasDisableIngressVC, 70 extracting atlasExtractIngressCell, 111 free ingressBank1PMFree, 32 ingressBank2PMFree, 32 freeing atlasFreeIngressBank1PMId, 98 atlasFreeIngressBank2PMId, 99 getting
146
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS(PM7324) Driver Manual
atlasGetIngressBank1PMId, 96 atlasGetIngressBank2PMId, 97 atlasGetIngressVc, 70 atlasGetIngressVcCounts, 68 atlasGetIngressVcStatus, 67 atlasGetIngressVCTableCOS, 115 inserting atlasInsertIngressCell, 110 key record, 46 map ingCellProcF4PMMap, 38 ingCellProcF5PMMap, 38 max ingressMaxVCs, 31, 55 ingVCTableMax, 36 maxframe ingMaxFrame, 36 modifying atlasModifyIngressVcConfiguratio n, 77, 78, 82 atlasModifyIngressVcPM, 107 atlasModifyIngressVcPolicing, 79, 80 atlasModifyIngressVcTranslation, 81, 82 OAM ingOAMDefType0_1, 35 ingOAMDefType10_11, 35 ingOAMDefType12_13, 35 ingOAMDefType14_15, 35 ingOAMDefType2_3, 35 ingOAMDefType4_5, 35 ingOAMDefType6_7, 35 ingOAMDefType8_9, 35 OAM configuration record, 43, 44 OAM defect record, 43 outcell ingOutCellCount, 54 patlasIngressVCRecord, 64, 65, 67, 68, 70, 71, 78, 80, 82, 107 PHYPolice ingPHYPolice1, 34 ingPHYPolice2, 34 PM record, 45 PMThresh ingPMThreshA2, 38
ingPMThreshB1, 38 ingPMThreshB2, 38 ingPMThreshC1, 38 ingPMThreshC2, 38 ingPMThreshD1, 38 ingPMThreshD2, 38 policing record, 44 reading atlasReadIngressBank1PMRecord, 102 atlasReadIngressBank2PMRecord, 103 atlasReadIngressConfig, 76 atlasReadIngressCounts, 69 atlasReadIngressKey, 75 atlasReadIngressOAMConfig, 83 atlasReadIngressOAMDefect, 85 atlasReadIngressPM, 105 atlasReadIngressPolicing, 78 atlasReadIngressTranslation, 80 record type, 40 registers, 34 translation record, 45 virtual connection ivcFieldALength, 32 ivcFieldAMask, 32 ivcFieldBLength, 32 ivcFieldBMask, 32 ivcInitialised, 31 ivcMaxFieldAValue, 32 ivcMaxFieldBValue, 32 ivcMaxPhyIdValue, 32 ivcPhyIdLength, 32 ivcPhyIdMask, 32 ivcPrimaryTable, 31, 55 ivcRecordAddrFree, 31, 56 ivcSecondaryAddrIndex, 56 ivcSecondaryAddrList, 31, 56 ivcSecondaryKeys, 31, 56 ivcSecondaryTable, 31, 55, 56 VPI ingPhyLastUnknownVci, 54 ingPhyLastUnknownVpi, 54 writing atlasWriteIngressAISActivation, 86 atlasWriteIngressBank1PMConfig, 100
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
147
S/UNI-ATLAS(PM7324) Driver Manual
atlasWriteIngressBank2PMConfig, 101 atlasWriteIngressCCActivation, 85 atlasWriteIngressConfig, 77 atlasWriteIngressKey, 75 atlasWriteIngressOAMConfig, 83 atlasWriteIngressPMActivation, 106 atlasWriteIngressPolicing, 79 atlasWriteIngressRDIActivation, 87 atlasWriteIngressTranslation, 81 atlasWriteIngressVpcPointer, 84
initialization
leftBranch, 56 max
maxEgressVCs, 59 maximumFrameLength, 42, 43 maxIngressVCs, 59
Microprocessor Cell Interface, 39, 52 Microprocessor Cell Interface Configuration, 39 MIV, 141 module
intEn, 33, 34 intEnRegs, 33 psInitVector, 60
Initialization Vector, 32, 33, 60, 141
atlasModuleInit, 23, 57 atlasModuleShutdown, 23, 57
Module Initialization Vector, 141 Module Management, 24
initialization vector pointer
sinitVector, 31
initializing devices
Module States, 23 Multi-vendor integration protocol, 141 MVIP, 141 OAM, 25, 33, 34, 35, 36, 37, 38, 41, 43, 44, 47, 48, 49, 54, 77, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 112, 127, 128 PCI, 133, 141 PCI controller, 141 performance monitoring
atlasInit, 23, 60
internalStatus, 40, 43, 47, 48 interrupt
intSt, 40
Interrupt Enable Registers, 33 interrupt service routine
manager isrManager, 30
Interrupt Service Routine, 19, 141 interrupt servicing
atlasISR, 21, 26, 27, 28, 29, 117, 121, 124
Interrupt Status Information, 117, 122 Interrupt-Service Routine Module, 21 ISR, 19, 21, 27, 28, 29, 30, 116, 117, 120, 121, 124, 129, 134, 141
backward bwdErrors, 51 bwdFMCSN, 51 bwdImpaired, 51 bwdLostBRCells, 52 bwdLostCLP0, 51, 52 bwdLostCLP0_1, 52 bwdLostOrImpaired, 51 bwdMisinserted, 51 bwdSECBC, 51 bwdSECBCAccum, 51
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
148
S/UNI-ATLAS(PM7324) Driver Manual
bwdSECBErrored, 51 bwdSECBLost, 51 bwdSECBMisins, 51 bwdTaggedCLP0, 51 bwdTotalLostCLP0, 52 bwdTotalLostCLP0_1, 52 bwdTRCC0, 50 bwdTRCC0_1, 50 bwdTUC0, 51 bwdTUC0_1, 51 currCellCountCLP0, 50 currCellCountCLP0_1, 50 f4ToF5AIS, 44 forward fwdBMCSN, 50 fwdErrors, 51 fwdFMCSN, 50 fwdLostCLP0, 51 fwdLostCLP0_1, 51 fwdLostFMCells, 51 fwdLostOrImpaired, 51 fwdMisinserted, 51 fwdSECBC, 51 fwdSECBErrored, 51 fwdSECBLost, 51 fwdSECBMisins, 51 fwdTaggedCLP0, 51 fwdTotalLostCLP0, 51 fwdTotalLostCLP0_1, 51 fwdTRCC0, 50 fwdTRCC0_1, 50 fwdTUC0, 50 fwdTUC0_1, 50 gfr, 41, 43, 76, 77 gfrState, 41, 43 nni, 40, 43, 47, 48, 87 tat1, 41, 44, 78, 79 tat2, 41, 44, 78, 79
Performance Monitoring, 38, 39, 50, 96, 100, 101, 102, 103, 104, 107 Performance Monitoring Configuration, 38 Per-PHY Policing, 52, 63, 113, 114 PHY
phyNonCompliant1, 53 phyNonCompliant2, 53 phyNonCompliant3, 53 phyPolice, 41, 44 phyPoliceConfig, 53 phyTAT, 53 phyVCCount, 53
phyAction, 53 PM record
active pmActive1, 40, 45, 47, 49, 105, 107, 108, 109 pmActive2, 40, 45, 47, 49, 87, 105, 107, 108, 109 address pmAddr1, 40, 45, 47, 49, 87, 105, 107, 108, 109 pmAddr2, 40, 45, 47, 49, 87, 105, 107, 108, 109
PM Session Allocation, 96 polling servicing, 28 porting functions
sysAtlas, 29, 121, 133 sysAtlasDetectDevice, 59 sysAtlasDeviceDetect, 120, 133 sysAtlasDPRtask, 26, 120, 121, 122 sysAtlasDPRTask, 28, 133 sysAtlasIntHandler, 26, 27, 28, 117, 120, 121, 122, 124, 133 sysAtlasIntInstallHandler, 26, 28, 120, 121, 133 sysAtlasIntPollTask, 29 sysAtlasIntRemoveHandler, 121, 133 sysAtlasMemAlloc, 123 sysAtlasMemCopy, 133 sysAtlasMemFree, 123 sysAtlasMemSet, 124, 133 sysAtlasRawRead, 58, 119, 133 sysAtlasRawWrite, 58, 119, 133 sysAtlasRead, 137, 138
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
149
S/UNI-ATLAS(PM7324) Driver Manual
sysDPRtask, 26 sysTxMsg, 25
prepend
atlasReset, 23, 61
returns
prePo1, 41, 46 prePo10, 42, 46, 81 prePo2, 41, 46, 81 prePo3, 41, 46 prePo4, 41, 46, 81 prePo5, 41, 46 prePo6, 42, 46, 81 prePo7, 42, 46 prePo8, 42, 46, 81 prePo9, 42, 46
Processing Flows, 24 Processor connection interface, 141 RAPI, 141 RDI, 34, 35, 36, 37, 87, 95 Real-Time operating system, 141 receive
Any-PHY packet interface, 141
record type
cell extraction, 25 cLPccEn, 40, 44, 80 cocup, 41, 44 cosEnable, 47, 48 crc, 52 nonCompliant1, 41, 45 nonCompliant2, 41, 45 nonCompliant3, 41, 45
register
regId, 58, 119
registers
reading atlasReadReg, 58
resetting devices
atlasRxCell, 25, 112 end to end rxEndToEndAisDefectLoc, 42, 47 rxEndToEndAisDefectType, 47 rxEndToEndDefectLoc, 43, 48 rxEndToEndDefectType, 42, 43, 48 error ATLS_ERR_DEV_ALREADY_A DDED, 59 ATLS_ERR_DEV_NOT_DETECT ED, 59 ATLS_ERR_EPMRAM_DIAG, 63 ATLS_ERR_EVC_ADD_RECOR D_EXISTS, 66 ATLS_ERR_EVC_ADD_RECOR D_NOT_EXIST, 67 ATLS_ERR_EVC_RECORD_AD DR_RANGE, 66, 67, 71, 72, 75, 88, 89, 108 ATLS_ERR_EVC_RECORD_NO T_EXIST, 71, 72, 75, 88, 89, 108 ATLS_ERR_EXCEED_MAX_DE VS, 59 ATLS_ERR_INVALID_DEVICE, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116 ATLS_ERR_INVALID_FIELDA, 64, 66, 68, 71, 72, 75, 78, 80, 82, 88, 89, 107, 108 ATLS_ERR_INVALID_FIELDB, 64, 66, 68, 71, 72, 75, 78, 80, 82, 88, 89, 107, 108 ATLS_ERR_INVALID_MAX_VC S, 59 ATLS_ERR_INVALID_PHYID, 64, 66, 68, 71, 72, 75, 78, 80, 82, 88, 89, 107, 108, 114
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
150
S/UNI-ATLAS(PM7324) Driver Manual
ATLS_ERR_INVALID_REG_ID, 58, 59 ATLS_ERR_INVALID_STATE, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116 ATLS_ERR_IPMRAM_DIAG, 63 ATLS_ERR_IVC_ADD_VC_EXIS TS, 64 ATLS_ERR_IVC_VC_ADDR_NO NE_FREE, 64 ATLS_ERR_IVC_VC_ADDR_NO T_FREE, 64 ATLS_ERR_IVC_VC_ADDR_RA NGE, 64 ATLS_ERR_IVC_VC_NOT_EXIS T, 65, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 96, 105, 106, 107, 109, 110 ATLS_ERR_MEM_ALLOC, 57, 59 ATLS_ERR_MOD_NOT_INIT, 59, 69, 73, 75, 76, 77, 79, 81, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 96, 105, 106, 109, 110 ATLS_ERR_MODULE_ALREAD Y_INIT, 57 ATLS_ERR_PER_PHY_POLICE_ RAM_DIAG, 63 ATLS_ERR_PRIMARY_ADDR_R ANGE, 64, 65, 68, 71, 78, 80, 82, 107 ATLS_ERR_PRIMARY_KEY_UN EXPECTED, 64, 65, 68, 71, 78, 80, 82, 107 ATLS_ERR_REG_POLL_TIMED _OUT, 69, 70, 73, 74, 75, 76, 77, 79, 81, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 96, 105, 106, 109, 110 ATLS_ERR_SECONDARY_ADD R_RANGE, 64, 65, 68, 71, 78, 80, 82, 107
ATLS_ERR_SRAM_DIAG, 63 segment rxSegmentAisDefectLoc, 42, 43, 48 rxSegmentAisDefectType, 47 rxSegmentDefectType, 42, 43, 48 rxSegmentToEndAisDefectLoc, 47
RTOS, 19, 21, 23, 26, 28, 117, 122, 123, 124, 129, 132, 133, 134, 138, 139, 140, 141 RTOS Interface, 19 Software State Description, 22 Statistics, 17, 23, 53, 54, 114 Statistics Information, 53 structures
sALTS_PM_REGS, 33 sATLS_DDB, 30, 59 sATLS_E_PERPHY_COUNTERS, 54 sATLS_EGRESS_COUNTS, 49, 72 sATLS_EGRESS_OAMDEFECT, 48, 92 sATLS_EGRESS_PM_FREE, 32 sATLS_EGRESS_RECORD, 33, 47, 65, 66, 67, 71, 72, 74, 87, 88, 89, 108 sATLS_EGRESS_REGS, 33, 36 sATLS_EVC_RECORD_ADDR_EXI STS, 31 sATLS_EVCRAM_TYPE, 32 sATLS_GDD, 30 sATLS_I_PERPHY_COUNTERS, 54 sATLS_INGRESS_CONFIG, 43, 76, 77 sATLS_INGRESS_PM_FREE, 32 sATLS_INGRESS_REGS, 33, 34 sATLS_INIT_VECT, 31, 33, 60, 136, 138 sATLS_INIT_VECTOR, 31, 33, 136, 138 sATLS_INT_EN_REGS, 33
151
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
S/UNI-ATLAS(PM7324) Driver Manual
sATLS_ISR_MANAGER, 30 sATLS_IVC_NODE_TYPE, 55 sATLS_IVC_PRIMARY_TABLE, 31 sATLS_IVC_RECORD_ADDR_FRE E, 31 sATLS_IVC_SECONDARY_ADDR _LIST, 31 sATLS_IVC_SECONDARY_KEYS, 31 sATLS_IVC_SECONDARY_TABLE , 31 sATLS_MPCELL_REGS, 33, 39 sATLS_NODE_TYPEs, 55
system specific information
user context
usrCtxt, 31, 59, 127, 128, 129, 130, 134, 135
value
pval, 58, 119
VCI, 38, 54, 55, 67, 68, 71, 88, 89 virtual connection pointer
pvcId, 64, 65, 66
VPI, 54, 67, 68, 71, 88, 89 writing
psysInfo, 31
testing
atls_test.c, 134
testing devices
atlasWriteEgressBank2PMConfig, 102 atlasWritePerPHYPolicing, 113 mAtlas_WRITE, 136, 137 registers atlasWriteReg, 58
atlasTest, 63
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
152
S/UNI-ATLAS(PM7324) Driver Manual
Proprietary and Confidential to PMC-Sierra, Inc., and for its Customers' Internal Use Document ID 2000949, Issue 3
153


▲Up To Search▲   

 
Price & Availability of 2000949

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X